perm filename MONCOM.BH[S,DOC]3 blob
sn#128258 filedate 1974-10-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00186 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00025 00002
C00026 00003
C00028 00004
C00031 00005 CONTENTS i
C00035 00006 CONTENTS ii
C00039 00007 CONTENTS iii
C00040 00008 1. Introduction 1
C00044 00009 1.1 Introduction to Timesharing 2
C00049 00010 1.1 Introduction to Timesharing 3
C00054 00011 1.2 Timesharing at the AI Lab 4
C00059 00012 1.3 Introduction to Terminals 5
C00064 00013 1.3 Introduction to Terminals 6
C00068 00014 1.4 Typing Commands to the Monitor 7
C00073 00015 1.4 Typing Commands to the Monitor 8
C00077 00016 1.5 File Storage 9
C00081 00017 1.5 File Storage 10
C00085 00018 1.6 LOGIN and KJOB Commands 11
C00089 00019 1.7 Editing Commands 12
C00093 00020 1.8 Commands for Compiling and Running Programs 13
C00097 00021 1.9 Information Commands 14
C00101 00022 1.10 Programs and Core Images 15
C00103 00023 2. Display Terminals 16
C00107 00024 2.1 Keyboards 17
C00112 00025 2.2 The Line Editor 18
C00117 00026 2.2 The Line Editor 19
C00122 00027 2.3 Line Editor Activation 20
C00128 00028 2.3 Line Editor Activation 21
C00132 00029 2.4 ESCAPE and BREAK Commands 22
C00136 00030 2.5 The WHO Line 23
C00139 00031 2.5 The WHO Line 24
C00144 00032 2.5 The WHO Line 25
C00149 00033 2.6 Page Printer Control 26
C00154 00034 2.7 Data Disc Control 27
C00158 00035 2.8 III Control 28
C00162 00036 2.9 Audio Switch Control 29
C00163 00037 3. Teletypes 30
C00167 00038 3. Teletypes 31
C00169 00039 4. Basic Monitor Commands 32
C00173 00040 4.1 Running Programs 33
C00177 00041 4.2 Manipulating Core Images 34
C00182 00042 4.3 Starting Programs 35
C00187 00043 4.4 Detached Jobs 36
C00192 00044 4.5 Device Control 37
C00196 00045 4.5 Device Control 38
C00201 00046 4.5 Device Control 39
C00205 00047 4.6 System Information 40
C00210 00048 4.6 System Information 41
C00213 00049 4.7 Miscellaneous Commands 42
C00218 00050 5. System Program Commands 43
C00222 00051 5.1 LOGIN 44
C00227 00052 5.1 LOGIN 45
C00231 00053 5.1 LOGIN 46
C00236 00054 5.1 LOGIN 47
C00240 00055 5.2 LOGOUT 48
C00244 00056 5.3 RPG 49
C00247 00057 5.4 COPY and SPOOL 50
C00250 00058 5.5 MAIL 51
C00253 00059 5.6 DART 52
C00257 00060 5.7 DO 53
C00261 00061 5.9 WHO 54
C00266 00062 5.9 WHO 55
C00270 00063 5.10 FIND 56
C00274 00064 5.10 FIND 57
C00278 00065 5.11 Other System Information Programs 58
C00282 00066 5.12 Miscellaneous System Programs 59
C00286 00067 6. Privileged Commands 60
C00290 00068 6. Privileged Commands 61
C00291 00069 Appendix 1 RPG 62
C00295 00070 Appendix 1 RPG 63
C00299 00071 Appendix 1 RPG 64
C00303 00072 Appendix 1 RPG 65
C00307 00073 Appendix 1 RPG 66
C00309 00074 Appendix 1 RPG 67
C00313 00075 Appendix 1 RPG 68
C00317 00076 Appendix 1 RPG 69
C00320 00077 Appendix 1 RPG 70
C00324 00078 Appendix 1 RPG 71
C00328 00079 Appendix 1 RPG 72
C00332 00080 Appendix 1 RPG 73
C00337 00081 Appendix 1 RPG 74
C00341 00082 Appendix 1 RPG 75
C00342 00083 Appendix 1 RPG 76
C00346 00084 Appendix 1 RPG 77
C00349 00085 Appendix 1 RPG 78
C00350 00086 Appendix 2 COPY 79
C00354 00087 Appendix 2 COPY 80
C00358 00088 Appendix 2 COPY 81
C00363 00089 Appendix 2 COPY 82
C00365 00090 Appendix 2 COPY 83
C00369 00091 Appendix 2 COPY 84
C00373 00092 Appendix 2 COPY 85
C00378 00093 Appendix 2 COPY 86
C00383 00094 Appendix 2 COPY 87
C00388 00095 Appendix 2 COPY 88
C00393 00096 Appendix 2 COPY 89
C00397 00097 Appendix 2 COPY 90
C00399 00098 Appendix 2 COPY 91
C00403 00099 Appendix 2 COPY 92
C00406 00100 Appendix 3 SPOOL 93
C00410 00101 Appendix 3 SPOOL 94
C00411 00102 Appendix 3 SPOOL 95
C00416 00103 Appendix 3 SPOOL 96
C00419 00104 Appendix 3 SPOOL 97
C00420 00105 Appendix 3 SPOOL 98
C00425 00106 Appendix 3 SPOOL 99
C00427 00107 Appendix 3 SPOOL 100
C00431 00108 Appendix 4 MAIL 101
C00434 00109 Appendix 4 MAIL 102
C00439 00110 Appendix 4 MAIL 103
C00444 00111 Appendix 4 MAIL 104
C00449 00112 Appendix 4 MAIL 105
C00454 00113 Appendix 4 MAIL 106
C00459 00114 Appendix 4 MAIL 107
C00464 00115 Appendix 4 MAIL 108
C00469 00116 Appendix 4 MAIL 109
C00474 00117 Appendix 4 MAIL 110
C00478 00118 Appendix 4 MAIL 111
C00482 00119 Appendix 4 MAIL 112
C00485 00120 Appendix 4 MAIL 113
C00489 00121 Appendix 4 MAIL 114
C00493 00122 Appendix 4 MAIL 115
C00497 00123 Appendix 4 MAIL 116
C00502 00124 Appendix 4 MAIL 117
C00507 00125 Appendix 4 MAIL 118
C00510 00126 Appendix 5 DART 119
C00513 00127 Appendix 5 DART 120
C00516 00128 Appendix 5 DART 121
C00517 00129 Appendix 6 Service Level System 122
C00521 00130 Appendix 6 Service Level System 123
C00525 00131 Appendix 6 Service Level System 124
C00529 00132 Appendix 6 Service Level System 125
C00533 00133 Appendix 6 Service Level System 126
C00537 00134 Appendix 6 Service Level System 127
C00538 00135 Appendix 7 FIXIMLAC 128
C00540 00136 Appendix 8 ARPA Network 129
C00545 00137 Appendix 8 ARPA Network 130
C00551 00138 Appendix 8 ARPA Network 131
C00556 00139 Appendix 8 ARPA Network 132
C00560 00140 Appendix 8 ARPA Network 133
C00565 00141 Appendix 8 ARPA Network 134
C00569 00142 Appendix 8 ARPA Network 135
C00573 00143 Appendix 8 ARPA Network 136
C00577 00144 Appendix 8 ARPA Network 137
C00580 00145 Appendix 8 ARPA Network 138
C00581 00146 Appendix 8 ARPA Network 139
C00586 00147 Appendix 8 ARPA Network 140
C00589 00148 Appendix 8 ARPA Network 141
C00592 00149 Appendix 9 Care and Feeding of Devices 142
C00596 00150 Appendix 9 Care and Feeding of Devices 143
C00600 00151 Appendix 9 Care and Feeding of Devices 144
C00605 00152 Appendix 9 Care and Feeding of Devices 145
C00607 00153 Appendix 9 Care and Feeding of Devices 146
C00611 00154 Appendix 9 Care and Feeding of Devices 147
C00616 00155 Appendix 9 Care and Feeding of Devices 148
C00620 00156 Appendix 10 Reloading the System 149
C00624 00157 Appendix 11 Monitor Error Messages 150
C00628 00158 Appendix 11 Monitor Error Messages 151
C00631 00159 Appendix 11 Monitor Error Messages 152
C00634 00160 Appendix 11 Monitor Error Messages 153
C00637 00161 Appendix 11 Monitor Error Messages 154
C00641 00162 Appendix 11 Monitor Error Messages 155
C00644 00163 Appendix 11 Monitor Error Messages 156
C00647 00164 Appendix 11 Monitor Error Messages 157
C00650 00165 Appendix 11 Monitor Error Messages 158
C00653 00166 Appendix 11 Monitor Error Messages 159
C00657 00167 Appendix 11 Monitor Error Messages 160
C00660 00168 Appendix 11 Monitor Error Messages 161
C00663 00169 Appendix 11 Monitor Error Messages 162
C00666 00170 Appendix 11 Monitor Error Messages 163
C00669 00171 Appendix 11 Monitor Error Messages 164
C00672 00172 Appendix 11 Monitor Error Messages 165
C00675 00173 Appendix 11 Monitor Error Messages 166
C00676 00174 Appendix 12 Bibliography 167
C00680 00175 Appendix 12 Bibliography 168
C00681 00176 Appendix 13 Stanford Character Set 169
C00685 00177 Appendix 13 Stanford Character Set 170
C00689 00178 INDEX 171
C00694 00179 INDEX 172
C00699 00180 INDEX 173
C00704 00181 INDEX 174
C00709 00182 INDEX 175
C00714 00183 INDEX 176
C00719 00184 INDEX 177
C00724 00185 INDEX 178
C00728 00186
C00729 ENDMK
C⊗;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY September, 1974
OPERATING NOTE 54.4
M O N I T O R C O M M A N D M A N U A L
(Second Edition)
by
Brian Harvey
ABSTRACT
This document describes the monitor commands available to users of
the Stanford Artificial Intelligence Laboratory timesharing system,
and the use of the terminals connected to this system. The first
section is an introduction to the system for new users. Several
appendices are included containing documentation of commonly used
system programs. This manual supersedes SAILON 54.3 and the several
addenda thereto.
This work was supported by the Advanced Research Projects Agency of
the Office of the Secretary of Defense under contract
DAHC15-73-C-0435.
ACKNOWLEDGMENTS
Several sections of this document were excerpted from program
documentation written by others. Contributors include Ralph Gorin
(RPG, SPOOL, DART), Dick Helliwell (COPY, DO, ZERO), Andy Moorer
(TELNET), Dan Swinehart (FTP), Larry Tesler (FIND), Jim Stein (RSL),
and Bo Eross (FIXIML). John McCarthy wrote the Introduction to
Timesharing section. Martin Frost and Fred Wright provided
invaluable technical assistance in publishing the manual, and Ralph
Gorin, Brian McCune, and Fred Wright edited and corrected the draft
versions. This document was produced on the Xerox Graphics Printer
using the PUB program written by Larry Tesler and improved by Rich
Johnsson, Pitts Jarvis, and Tovar.
Still further thanks are due to Larry Tesler, whose many days of PUB
debugging when he would rather have been doing other things made the
second edition much less painful to prepare than the first. Also to
all the people responsible for ITS TECO, without which there might
not have been a Monitor Command Summary in this edition. Last but
not least, to Tom Knight for persuading our XGP to produce the most
beautiful output in its history.
[Note: Monitor Command Summary in XGP version only.]
CONTENTS i
T A B L E O F C O N T E N T S
SECTION PAGE
1 INTRODUCTION FOR NEW USERS 1
1.1 Introduction to Timesharing . . . . . . 1
1.2 Timesharing at the AI Lab . . . . . . . 3
1.3 Introduction to Terminals . . . . . . . 5
1.4 Typing Commands to the Monitor . . . . . 7
1.5 File Storage . . . . . . . . . . . 8
1.6 LOGIN and KJOB Commands . . . . . . . 10
1.7 Editing Commands . . . . . . . . . . 11
1.8 Commands for Compiling and Running Programs . 13
1.9 Information Commands . . . . . . . . 14
1.10 Programs and Core Images . . . . . . . 14
2 DISPLAY TERMINALS 16
2.1 Keyboards . . . . . . . . . . . . 16
2.2 The Line Editor . . . . . . . . . . 17
2.3 Line Editor Activation . . . . . . . . 19
2.4 ESCAPE and BREAK Commands . . . . . . . 21
2.5 The WHO Line . . . . . . . . . . . 22
2.6 Page Printer Control . . . . . . . . 25
2.7 Data Disc Control . . . . . . . . . 26
2.8 III Control . . . . . . . . . . . 27
2.9 Audio Switch Control . . . . . . . . 28
3 TELETYPES 30
4 BASIC MONITOR COMMANDS 32
4.1 Running Programs . . . . . . . . . . 32
4.2 Manipulating Core Images . . . . . . . 33
4.3 Starting Programs . . . . . . . . . 34
4.4 Detached Jobs . . . . . . . . . . . 35
4.5 Device Control . . . . . . . . . . 36
4.6 System Information . . . . . . . . . 39
4.7 Miscellaneous Commands . . . . . . . . 41
CONTENTS ii
5 SYSTEM PROGRAM COMMANDS 43
5.1 LOGIN . . . . . . . . . . . . . 43
5.2 LOGOUT . . . . . . . . . . . . . 47
5.3 RPG . . . . . . . . . . . . . . 48
5.4 COPY and SPOOL . . . . . . . . . . 49
5.5 MAIL . . . . . . . . . . . . . . 51
5.6 DART . . . . . . . . . . . . . . 51
5.7 DO . . . . . . . . . . . . . . 52
5.8 ZERO . . . . . . . . . . . . . . 53
5.9 WHO . . . . . . . . . . . . . . 53
5.10 FIND . . . . . . . . . . . . . . 55
5.11 Other System Information Programs . . . . 57
5.12 Miscellaneous System Programs . . . . . 58
6 PRIVILEGED COMMANDS 60
A P P E N D I C E S
1 RPG 62
2 COPY 79
3 SPOOL 93
4 MAIL 101
5 DART 119
6 SERVICE LEVEL SYSTEM (RSL) 122
7 FIXIMLAC 128
8 ARPA NETWORK 129
9 CARE AND FEEDING OF DEVICES 142
10 RELOADING THE SYSTEM 149
11 MONITOR ERROR MESSAGES 150
12 BIBLIOGRAPHY 167
CONTENTS iii
13 STANFORD CHARACTER SET 169
1. Introduction 1
SECTION 1
INTRODUCTION FOR NEW USERS
This manual describes the monitor commands used in the PDP-10
computer system at the Stanford Artificial Intelligence Laboratory.
The first section is an introduction for new users, including brief
explanations of terminals, file storage, and some of the essential
monitor commands. The computer is operated exclusively as a
timesharing system, and the section begins with an introduction to
timesharing.
1.1 Introduction to Timesharing
A timesharing computer system includes the computer itself (in our
case a PDP-10 computer made by the Digital Equipment Corporation),
user terminals for input to and output from the computer (in our case
about 60 keyboard and display terminals), and a file system that
keeps programs, data for the programs, reports, and other data for
the users.
The basic idea of timesharing is to allow each user to behave as
though he had a computer to himself controlled from his terminal.
This is accomplished by having the computer cycle its attention among
the users wanting service in rotation. It does this fast enough so
that small requests are serviced in a time that ranges from a small
fraction of a second to a few seconds, depending on the number of
people demanding service at that instant. If the desired computation
is long, the computer will do a bit of it, then service other people,
then return to it, and so on until the computation is done. The time
taken will depend on the size of the computation and how busy the
machine is.
At any time the user's terminal is interacting with some program.
These programs include the timesharing monitor; editors used to
prepare programs, documents, reports and other data; various utility
programs; and the user's own programs.
When you first sit down at a terminal, you will be interacting with
the monitor, and you can always get back to the monitor by pressing
the CALL key on the terminal. The first thing you have to do is to
log in, which tells the monitor who you are so it can connect you to
the file directory that contains your files and can do its
1.1 Introduction to Timesharing 2
accounting. The last thing you do is log out so that the terminal
and other resources you have been occupying can be used by someone
else.
You will have a certain quota of disk space and will be able to keep
files such as programs between uses of the computer. Therefore, you
will not ordinarily need any external form of storage such as punched
cards or magnetic tape. (Our computer doesn't even have punched card
equipment.)
A user gets service from programs by typing commands to the monitor.
Some monitor commands perform the service and leave you again talking
to the monitor. Others cause a program to be started; thereafter,
you have to interact with that program in the way prescribed by it.
When you are done with it, you go back to the monitor.
Your program also gets service from the monitor by means of special
instructions, called UUOs, used in the program. The monitor provides
many different services as a sort of subroutine of your program; most
importantly, it is responsible for allocating resources, like core
storage and input/output devices, among different jobs. Therefore,
input and output must be done through the monitor to avoid conflicts.
These UUOs are documented in their own manual; this one is about the
commands you type at your terminal.
A typical task is to write a program in some computer language such
as SAIL (our dialect of ALGOL) or LISP and then debug the program by
running it, checking the results, and changing it until it gives the
right answers. This is accomplished in the following steps:
1. First you run an editor. (We have several, but the current
favorite is called E.) The editor reads whatever you type and
displays it; what you type becomes the text of the program you are
writing. However, the editor gives you convenient facilities for
going back in your text and making changes that you think of as you
go along. Most people don't write their programs on paper, but make
them up as they use the editor. When the program is ready to try,
you exit from the editor back to the monitor, and your program is a
file on the disk with a name you have given it. At any time, you can
re-edit this file to make changes in it. You can also print it on
the line printer to take a copy home, and when you don't need it any
more you can delete it.
2. Normally, the next step is to call a compiler to translate the
program from a source language into machine language, call the loader
to load it into your core image, and finally ask the computer to run
it. You can do these things as separate operations, but facilities
are provided for initiating all of this with a single command.
1.1 Introduction to Timesharing 3
3. When the computer runs your program, it may just produce answers
and stop. If you like the answers, perhaps you are done. Otherwise,
you go back to the editor to make changes in the source file and try
again. On the other hand, you may have written an interactive
program which expects you to type input on the terminal. It
interprets your input and gives output, then asks for more input,
etc. Your program may read files and write them. It may display
pictures on your terminal. Also, it may interact with the physical
world by reading pictures from one of the TV cameras attached to the
computer and by waving the mechanical arm.
4. In order to debug a program, you may have to do more than just
look at the output. Therefore, the timesharing system has facilities
for examining and changing the contents of registers and for putting
break-points in programs.
1.2 Timesharing at the AI Lab
Our timesharing system runs on a Digital Equipment Corporation (DEC)
PDP-10 computer. This is a 36-bit machine designed for timesharing
applications, with 262,000 words of core storage. Our timesharing
system, derived from old DEC software, has been extensively modified
for our special requirements.
Programming languages available here include SAIL, a version of ALGOL
with added features for backtracking, list processing, associative
processing, and coroutining; several versions of LISP; FAIL, our
PDP-10 assembly language; and the MICRO-PLANNER problem solving
language.
To use the computer, you must type a LOGIN command at your terminal.
(See Section 1.6 for a description of this command.) The monitor
assigns you a job number, which it uses internally to keep track of
you. Associated with your job are various resources, of which the
most important is the core image, i.e., the simulated core storage
maintained for you by the monitor so that your program can use
addresses starting from zero although it may really be located
anywhere in core while running. Your job only has one core image; if
you type a monitor command which causes a program to be run, that
program replaces your old core image. There is no way for one job to
run two programs at once.
As a user of the Stanford AI Lab system, you will be given a
programmer name to identify you to the computer. The main reason for
this is so that the monitor knows which files on the disk storage
belong to you. This name will probably be your initials. When you
1.2 Timesharing at the AI Lab 4
log in, you must type in this name, along with a project name which
may identify what project you are working on. For example, if you
are doing homework for a Computer Science course, the course number
might be your project name. The combination is called a
project-programmer name or PPN and is typed PRJ,PRG or sometimes
[PRJ,PRG] when used in a file specification. Project "1" is a
popular name with no special meaning.
Ours is just about the most heavily used computer we know of. It's
hard to get good service, especially weekday afternoons. Therefore,
please be careful about leaving jobs logged in when you leave, and
don't play Spacewar during the day! Even a job which is not running
uses up scarce resources.
Sometimes the system stops working while you are using it. You will
notice that characters you type no longer appear on your terminal.
In many cases, the system fixes itself after a few seconds, so all
that happens is that a few characters you typed are lost. Otherwise,
someone has to go fix it manually. Sometimes they can get it working
again so that you can just continue with what you were doing. Other
times, they have to load a new copy of the system, and you have to
start over again. This is called reloading. If this happens, you
will see a message to that effect on your terminal. (It is a good
idea, when editing a long file, to save it on the disk every so often
in case of a system crash.) If the system crashes and nobody is
around to fix it, you may have to reload it yourself. See Appendix
10 to find out how.
Sometimes the system is stopped intentionally for software or
hardware maintenance. This downtime is scheduled in advance, and
part of the system messages you see when you log in is a maintenance
schedule. Some time before the system is taken down for scheduled
maintenance, you will see a warning on your terminal which counts
down to the end. This warns you to save any files you are writing
and stop what you are doing. Such maintenance is often scheduled
between 5 and 7 weekday evenings.
This document, the Monitor Command Manual, describes the use of
monitor commands typed in at terminals. Another manual describes the
UUOs, instructions used by programs to communicate with the monitor.
Other system information, including documentation of specific system
programs, can be found in some printed manuals and on the disk; look
at the [S,DOC] and [UP,DOC] file directories for program
documentation. Some system programs, which are invoked by special
monitor commands, are written up in appendices to this manual. Most
of these appendices are derived from [UP,DOC] files. Some of those
files are updated more frequently than this manual and some aren't.
Caveat emptor.
1.3 Introduction to Terminals 5
1.3 Introduction to Terminals
Most terminals on this system are display terminals; the characters
you type appear on a display screen. There are also a few Teletypes,
which use paper, and do not have the full character set of our
displays. Teletypes are rarely used here, although there are a few
connected to our system.
There are two kinds of display terminals in use at the lab, Data
Discs and IIIs ("triple-I"). They use the same keyboards, but have
different display screens. The Data Discs, which are more numerous
(about 60 of them), use TV monitors. (The name Data Disc actually
refers not to the terminals themselves, but to the machine in the
computer room which controls them.) The six IIIs are vector plotting
displays, used mainly for graphics display programs like Spacewar.
Unless you are writing a display program, the difference is not too
important except that the character set on the IIIs is less legible
than that on the Data Discs.
A vacant terminal should say TAKE ME I'M YOURS! along with a line of
cryptic information on an otherwise blank screen. The cryptic
information is the system WHO line, described on page 23. If it's
completely blank, make sure it's turned on, and that the brightness
and contrast (intensity on IIIs) are turned up. If it says NO DATA
DISK CHANNELS LEFT, it means that the Data Disc, which can run only
31 terminals at once, is full. A free terminal is called available
because the message used to say THIS CONSOLE AVAILABLE until Dick got
to it.
Each of the printing character keys on our terminals has two
characters printed on it (except the 0 key). The bottom one is
usually a letter or digit, and the top one is some special character.
There are two SHIFT keys and a SHIFT LOCK key, which make letters
upper case. The keys which produce the special characters are
labelled TOP. For example, hitting the "<D" key alone produces lower
case "d"; also holding down SHIFT produces capital "D"; and holding
down the TOP key makes it produce "<" (SHIFT and TOP together is
interpreted as TOP).
When you type something on an available terminal, the available
message is replaced by whatever you typed. The characters you type
are kept in a special buffer called your line editor until you
activate them by typing RETURN or a few other special characters.
The line editor allows you to change the contents of the line by
using special editing command characters. The characters in the line
editor are displayed on the screen with two cursors: underlines on
Data Discs and triangles on IIIs. The left cursor is underneath the
first character in the line editor; the right cursor is under the
1.3 Introduction to Terminals 6
place where the next character you type will go (generally the end of
the line). When your line editor is empty, the cursors coincide.
The line editor commands are explained in Section 2.2. Note: when
you type RETURN, the monitor generally supplies a LINE character
automatically. RETURN signifies a return to the left margin, and
LINE an advance to the next line.
To get you started using display terminals before you read about all
the line editor commands, all you need to remember is that the BS key
will delete the last character, and the CLEAR key will delete the
entire line. The CONTROL and META keys are used for other line
editor functions.
When you are done with a terminal, be sure to log it out. Also,
don't leave anything in the line editor--type RETURN before you leave
if you're not sure. Your Data Disc channel will be made available
soon after you log out, but not if there is anything in the line
editor.
A note on terminology: In the body of this manual, characters are
referred to by the name printed on the keyboard, e.g., RETURN and
FORM. In other documentation, including some of the appendices to
this manual, different notations are used. Some of these are shown
here:
function key other notation
break BREAK <BRK> [BRK]
escape ESC <ESC> [ESC] <ESCAPE>
call CALL <CALL> [CALL] ↑C
clear CLEAR [CLEAR] ↑U
tab TAB <TAB> [TAB] <HT>
form feed FORM <FORM> [FORM] <FF>
vertical tab VT <VT>
backspace BS <BS> [BS]
carriage return RETURN [RETURN] <CR> CR
line feed LINE <LF> LF <LINEFEED>
shift SHIFT <SHIFT>
top TOP <TOP>
alt mode ALT <ALT> <ALTMODE> $
meta META <META> β
control CONTROL <CONTROL> <CTRL> α
The combination of RETURN and LINE (remember that LINE is supplied by
the monitor) is sometimes referred to as CRLF.
1.4 Typing Commands to the Monitor 7
1.4 Typing Commands to the Monitor
What you type may be read by different programs at different times,
so you should be aware of what program you're talking to. When you
first type on a vacant terminal, you are talking to the monitor's
command decoder. You continue to talk to the monitor until you start
running a program; then you're generally talking to that program. To
distinguish these, the state of the terminal is described as monitor
mode or user mode. When the monitor is ready to read a command from
your terminal, it types a period. System programs which you run,
like compilers and editors, generally type an asterisk when they are
ready for a command.
It is possible to type ahead when the system is not waiting for
typein. Characters you type which are not immediately read by either
the monitor or a program are stored in your terminal's input buffer
until they are needed. Programs can cause this buffer to be cleared.
For example, some programs ask for confirmation of certain commands,
e.g., when you specify for output a filename which already exists.
Some such programs clear your input buffer first and others don't, so
you can get confused by typing ahead to a program whose behavior you
don't expect. Your input buffer is also cleared when you type CALL.
Monitor commands consist of the command name, possibly followed by
arguments separated by spaces or punctuation, and then a RETURN. The
command may be typed using upper and lower case letters
interchangeably. Monitor command names may be typed in completely,
or they may be abbreviated to only as many letters as are necessary
to make the name unique; for example, the LOAD command may be
abbreviated LOA, but not LO because there is also a LOGIN command. A
few common commands have single-letter abbreviations (L is accepted
to mean LOGIN). Only the first six letters of a command name are
relevant.
Some monitor commands are completely processed by the monitor,
without running a program in your core image. For example, the
DAYTIME command types the current date and time, without disturbing
your core image. Most commands, however, require a program to be
run. The monitor usually requires you to log in before you may run
programs; there are a few exceptions, to permit system information
programs like WHO, and of course the LOGIN program itself. If, when
not logged in, you try to run a program which requires you to be
logged in, the monitor automatically runs LOGIN, which will ask you
for your project-programmer name. In this situation, when LOGIN
finishes running, it will re-enter the command which you typed in the
first place, so the command will be performed without making you
retype it. Commands which require login but which refer to a
pre-existing core image rather than starting a new program (e.g.,
START) do not cause this automatic login, but give an error message.
1.4 Typing Commands to the Monitor 8
When you first enter a command which runs a program, the system
assigns you a job number and types a line like
JOB 19 Stanford 6.17/Q 09-10-74
which tells you what version of the monitor is running and when it
was created, as well as your job number. (If it types
JOB CAPACITY EXCEEDED
too many jobs are already logged in.) When a program like WHO is run
without logging in, the job is killed when the program exits. The
LOGIN program, however, leaves you logged in when it exits.
Some of the monitor commands are briefly described starting in
Section 1.6. The full descriptions of all the commands are in
Sections 4 and 5, and in the appendices.
1.5 File Storage
A file is a stored collection of information, perhaps a program or
data. Most files are stored on a permanently available disk unit.
Files on the disk must be identified by name and by owner so that you
can get at the one you want. Files on other devices may also be
used; we have magnetic tape, DECtape (a small mag tape unit unique to
Digital Equipment Corp. machines), and paper tape, as well as a line
printer and stuff like that. Whenever a program does input or
output, it has to specify the particular file it wants. A file
identifier is typed in the form
DEV:FILNAM.EXT[PRJ,PRG]
(some parts of that can be left out). DEV specifies the device you
want. Generally, if you want the disk (DSK), you may leave it out.
Device names may include a number to specify a particular unit; thus,
TTY is your own terminal (all terminals used to be Teletypes, and the
name stuck), but TTY26 is the one next to the computer console.
Besides these physical device names, you can define logical device
names to use in your program. The monitor command ASSIGN is used to
make your logical name refer to some particular physical device. If
you leave out the device name, leave out the colon too.
Some devices, like the disk, require the use of filenames, and some,
like the line printer, don't. If you specify a filename for a device
which doesn't use one, the name is ignored. Devices which require
file names are called directory devices because they include special
1.5 File Storage 9
files called directories which tell where the other files are. Files
are specified by a filename, another name called the extension, and,
on the disk, a PPN specifying the file's owner. Letters in the
filename are upper case, although most programs will accept lower
case letters. The filename is one to six letters or digits, and can
say anything you want to identify the file. The extension, which is
optional, is one to three characters. The only directory devices in
this system are the disk and DECtapes.
The extension of a file is generally one of a standard set used to
indicate what sort of file it is, like SAI for a SAIL program, REL
for a relocatable binary program as produced by a compiler, or DMP
for a dumped core image. Many programs use these standard extensions
as defaults, so you often can type the file name alone.
Disk files require a project-programmer name, which selects the
directory to use for the file (see page 3). If you do not type in a
PPN, you generally get the one you gave to LOGIN. The disk directory
for each user is called a UFD (User File Directory); people also
speak of a disk area, although there is not really a physical area
involved.
Files are divided into smaller units, called records. The precise
meaning of a record depends on the particular device you are using,
but often a record is the smallest unit of data which the device will
transfer to or from the computer at a time. For example, files on
the disk are divided into 200-word (octal) records. The disk
hardware reads or writes one such record at a time. On magnetic
tape, you can write any size records; however, when you read the
tape, each record must be read all at once. The monitor provides
buffering so that your program can deal with the data a character or
a word at a time. The monitor gets a record and stores it for you.
The following devices are available on this system.
1.5 File Storage 10
DSK the public disk
SYS same as DSK, but implies PPN [1,3] (system files)
UDP1 user disk pack, a disk unit for private disk packs
MTA0,1 magnetic tape drives
DTA1-4 DECtape drives
LPT line printer
XGP Xerox Graphics Printer
IMP Interface Message Processor for ARPA network connections
PTR paper tape reader
PTP paper tape punch; also connected to CALCOMP plotter
AD old analog-to-digital and digital-to-analog converter
ADC new analog to digital converter
DAC new digital to analog converter
VOD voder (speech synthesizer)
TV TV cameras
TTYn terminals and pseudo-teletypes (see below)
TTY the user's own terminal
CTY PDP-10 console Teletype
A pseudo-teletype (PTY) is a simulated device used to allow programs
to "type" monitor commands. The program uses special UUOs to output
text to the PTY, which is then seen by the monitor as if it were
typed at another terminal, with its own TTY number. Similarly, text
typed out to the PTY can be read by the controlling program. One
user of PTYs is the program which allows people at other computers to
use our system via the ARPA network (Appendix 8).
Disk files are copied to magnetic tape periodically, using the DART
program (see Appendix 5). Monitor commands which run DART can be
used to retrieve files which have been clobbered by system failure
(uncommon) or user error.
1.6 LOGIN and KJOB Commands
In this and the following sections, a few of the monitor commands
used in creating and debugging a program are described briefly. More
complete descriptions come later and in other manuals.
The first thing you have to do is log in. The command for this is
called LOGIN, abbreviated L. Your project-programmer name is its
argument. (See page 3 for an explanation of project-programmer
names.) If you are named V. I. Lenin,* you might type
------
* Last year's edition said "Richard M. Nixon" here, and I was
thinking about a used-Ford pun, but I decided to hope this edition
will outlast this administration. Lenin is timeless.
1.6 LOGIN and KJOB Commands 11
L 1/VIL
(The slash means that you don't want to see any system messages which
you've seen before. You could have used a comma to see all messages
or a dot to see none at all.) The monitor processes this command by
assigning and typing out a job number, and then starting the LOGIN
program in your core image.
If this is the first time you're logging in, LOGIN will type out
ARE YOU SURE?
to which you must type a Y. It will tell you that you are not known
as an authorized user of the system, unless your initials have been
added to the authorized users list. Then you get the messages, and
the program exits. You are now logged in. Section 5.1 explains
the LOGIN command more fully.
When you finish doing whatever you want, you should log out. The
command for this is called KJOB, abbreviated K. No arguments are
required, just K and RETURN. (As with all monitor commands, you must
be in monitor mode before entering the command.) This command runs
the LOGOUT program, which types out how much computer time you used,
etc., and kills your job. Your terminal will become available in a
few seconds if you don't type anything else. If there are no files
in your directory, the LOGOUT program deletes the directory. Section
5.2 gives more complete documentation of the logout procedure.
1.7 Editing Commands
To enter your program, or to correct it, you will use one of our text
editors. There are four editors in common use here:
1. E. This is the one you'll generally use. It is a display
editor, much like TV (below) but much faster and with slightly
different features.
2. TV. This is an earlier version of our display editor. It has
been pretty much replaced by E, but there are still a few things TV
can do which E can't, like switching between files in the middle of
an edit.
3. SOS. This editor is designed for use at Teletypes or other
non-display terminals. Files created with SOS include a line number
at the beginning of every line. Editing commands use the line
numbers to specify what lines to change, delete, or whatever.
1.7 Editing Commands 12
Hopefully you will have no need to use this editor, since you'll be
using display terminals.
4. TECO. This editor is supplied by DEC. It is extremely powerful,
in that it allows you to write editing programs which can process a
file systematically, and it is very flexible about strange characters
in the file. However, for routine editing it is somewhat
inconvenient to use because it does not use the display facility of
the terminals.
Each of these editors is described in its own manual. A bibliography
is included as an appendix to this manual. The point to be explained
here is how to use monitor commands to invoke an editor; we'll assume
here that you're using TV.
Suppose you want to write a program called PROG in the SAIL
programming language. The monitor command to create a new file with
TV is CTV. So you would type
CTV PROG.SAI
(SAI is the standard extension for SAIL programs.) This command
tells the monitor to run the RPG (Rapid Program Generator) program, a
command interpreter which abbreviates the sequence of commands needed
to edit, compile, load, and debug programs. RPG reads the CTV
command, which tells it to run TV, telling TV to create a new file
named PROG.SAI. RPG remembers the last editing command you typed, so
later you'll be able to edit the file simply by entering a TV command
without having to type the file name again. (Note--LOGOUT makes RPG
"forget" your commands, so you have to type the file name again when
you next log in.)
The command for editing an already existing file with TV is TV. You
can enter this command with no argument and it will remember the file
from the last edit command, or you can specify a filename as with the
CTV command above.
The E editor, which is the most commonly used here, includes
provisions within it for carrying out the RPG functions itself.
Therefore, the CETV and ETV commands analogous to CTV and TV do not
run RPG; they start E directly. However, these commands are included
with the RPG commands in this manual because they act the same to the
user.
There is a file you can edit to learn how to use E. To do this, log
in and enter the following command:
HELP ETEACH
Then just read what appears on your screen and follow instructions.
1.8 Commands for Compiling and Running Programs 13
1.8 Commands for Compiling and Running Programs
Once you have typed in your program, you have to compile it, load it,
and run it. Compilers like SAIL put out relocatable binary programs.
This means that the program is in a form which contains enough
information so that it can be loaded into any address in core.
Addresses within the program are all considered relative to the
program's first word, so the LOADER has to add the actual address of
that word to all the relative addresses in the program. Your program
can be loaded along with others, for example a debugging program; the
actual location of any program in your core image will depend on what
other programs are loaded with it. (Note that this relocatable
binary program format has nothing to do with the hardware relocation
discussed on page 3.) The core image produced by the LOADER can be
saved in a DMP (dump) file, which can then be run directly by a
monitor command without going through the LOADER again.
Suppose you have typed in your program, PROG.SAI. You want to
compile, load, and run it. You could say
EXECUTE PROG
and all those things would happen automatically. RPG would generate
a command file for SAIL telling it to compile PROG.SAI and start up
the loader, which also gets a command file. (RPG knows that it
should use the SAIL compiler because of the SAI extension in your
filename.) Again, RPG remembers the command, so next time you just
have to say EXECUTE and it'll all happen. In fact, the editors all
have commands which automatically re-do the last compile-type RPG
command.
Suppose, to make this clearer, you find a bug in the program. To fix
it, you can say
ETV
and E will start editing PROG.SAI.
Then you use E commands to edit the file. When you're done, you use
the exit-to-RPG command, which in E is CONTROL-X GO. This will
automatically repeat the EXECUTE command you typed before.
There are many different versions of this compilation command:
COMPILE will just compile the program, LOAD will compile and load,
etc. The RPG commands are listed in Section 5.3 and fully
described in Appendix 1.
1.9 Information Commands 14
1.9 Information Commands
You can sometimes find out how to use a system command by typing HELP
followed by the command name. Typing HELP with no argument will list
the kinds of help available this way. For instance, if you forget
how to log in, you can type HELP LOGIN.
To get a list of the files in your directory, type the DIRECTORY
command. You can get the list for another disk area by including a
PPN in square brackets as an argument.
You can see the status of all the jobs on the system with the WHO
command, abbreviated W. You can find out about jobs belonging to a
particular user by typing WHERE prg (prg is the programmer name) or
FINGER prg. These type out information about the given user's jobs;
try them to find out more. All of these commands run programs in
your core image, so you shouldn't run them if you need the program
you have there. These information commands can be run without
logging in first.
1.10 Programs and Core Images
This section discusses the allocation and use of core storage for a
job. The PDP-10 storage is divided into blocks of 1024 words, called
1K. Each job's core image is a multiple of 1K long. The core image
may be located in any contiguous set of actual core blocks while the
program is running.
Actually, a job may use two distinct contiguous sets of core blocks,
called the lower and upper segments. The job must have a lower
segment in order to run. This segment belongs to that job alone. If
the job has an upper segment, it may be shared with other jobs. One
use of this is to allow several users to run the same system program
with only one copy of the program in core; the data for the
individual users is stored in each job's lower segment, and the
common code is in the upper segment.
An upper segment may be write protected, so the program in it cannot
be accidentally changed. This is usually done with shared upper
segments. Programs can control the write protection of their upper
segment by UUO. Upper segments are more fully explained in the UUO
Manual.
Each upper segment has an entry in the system job table, including a
job number, a segment name, and much of the status information
1.10 Programs and Core Images 15
associated with jobs. Some of the monitor commands described in
later sections of this manual refer to upper segments.
The lowest locations in each job's core image, called the Job Data
Area, are used by the monitor to store information about the job.
Some of this information is of interest only to the monitor, while
other parts can be used and modified by the job itself. In
particular, some monitor commands use information from Job Data Area
words, e.g., starting addresses for the program. The description of
such commands will refer to the relevant word by its symbolic name,
of the form JOBxxx, e.g., JOBSA is the word containing the program's
normal start address. The complete description of the Job Data Area
is contained in the UUO Manual.
2. Display Terminals 16
SECTION 2
DISPLAY TERMINALS
2.1 Keyboards
Our display terminals use a character set called Stanford ASCII.
ASCII is a standard computer character set; our version is similar to
the standard but somewhat extended. In particular, the "control"
codes in ASCII, which mean things like "end of text," are used here
for printing characters like α and ∃ and ∩. There are seven bits in
a character code; since the PDP-10 has 36-bit words, five characters
fit in a word with one bit left over. The complete Stanford ASCII
character set is listed in Appendix 13.
Each of the printing character keys on our terminals has two
characters printed on it (except the 0 key). The bottom one is
usually a letter or digit, and the top one is some special character.
There are two SHIFT keys and a SHIFT LOCK key, which make letters
upper case. The keys which produce the special characters are
labelled TOP. For example, hitting the "<D" key alone produces lower
case "d"; also holding down SHIFT produces capital "D"; and holding
down the TOP key with it produces "<" (SHIFT and TOP together is
interpreted as TOP).
There are several special character codes, generally not printing
characters, which are not affected by SHIFT and TOP. One is the
space bar, which spaces as on any typewriter. The TAB key sends a
tab code, which prints by spacing out to the next tab stop; these are
set eight spaces apart and cannot be changed. The RETURN key sends a
carriage return code, and the monitor generally provides a line feed
code after it automatically. The LINE key sends a line feed alone;
this is not too often useful. The FORM key sends a form feed code,
and the VT key a vertical tab. These two are used by some programs
as control codes, but not often for their printing effect. The BS key
is backspace (in real ASCII this code is called delete). This code
is usually not sent to your program, but is taken by the line editor
as a command to back up the cursor. The ALT key sends an alt mode;
this code has no printing significance, but is used as a control code
by programs.
Although ASCII is a seven-bit code, display terminals actually send
nine-bit codes to programs. The two extra bits represent the CONTROL
2.1 Keyboards 17
and META keys. These keys are like SHIFT and TOP in that they are
held down along with some other key. They have two different
functions; when the character they are used with is sent to a
program, it can be used as a control command. Editing and debugging
programs use such single-character commands heavily. For example, in
the E editor, CONTROL-META-D means to delete a line. However, the
CONTROL and META keys are also used as commands to the system line
editor for inserting characters inside a line, etc. The use of the
line editor is explained in Section 2.2.
There are four more keys to be described. They are unusual in that
none of them send characters to your program or to the monitor's
command decoder; they are processed by the monitor's keyboard scanner
and the line editor. CLEAR is simply a line editor command to delete
the entire line in the line editor. CALL is used to interrupt a
program running in your core image and return your terminal to
monitor mode. ESC (escape) and BREAK are used to signal that the
characters which follow are a special command to the display service
routines in the monitor; the many different functions of these
commands will be explained in Section 2.4 and following sections.
There should be a list of the ESC and BREAK commands attached to your
keyboard; if not, see page 21 to find out how to print one.
2.2 The Line Editor
At a display, the characters you type are accumulated by a part of
the monitor called the line editor. When you end a line by typing an
activation character, the entire line is sent to your program (or to
the monitor command decoder). Generally you will activate a line
with the RETURN key, although others also work. The exact workings
of activation are discussed in Section 2.3, but first, there are
several editing command characters which can be used to change the
text in the line editor.
There are two line editor cursors displayed on your screen. The left
cursor is underneath the first character in the line editor; the
right cursor is under the character position you are about to write
into. The cursors are underlines on Data Discs, and triangles on
IIIs. Also, on IIIs, the characters in the line editor are displayed
somewhat below any other characters on the same line. If there is no
text in the line editor, the two cursors coincide.
When you type a printing character into the line editor, it is
displayed at the right cursor position, replacing any other character
which was there before. The CONTROL and META keys are used to change
the function of characters typed in. Also, several characters have
2.2 The Line Editor 18
different functions depending on whether or not they are typed with
the right cursor at the end of the line. For example, BS at the end
of the line deletes the last character; inside the line, it moves the
cursor left one position without deleting anything.
META along with a printing character (including space and tab)
inserts that character at the cursor position, in front of the
character already there, rather than replacing the old character. At
the end of the line, a META character will activate.
BS at the end of the line deletes the last character. If it's not at
the end, BS just backs up the cursor without deleting. People talk
about deleting backspace and non-deleting backspace to distinguish
these. CONTROL-BS is always non-deleting, and META-BS is always
deleting. (CONTROL-META-BS, like CONTROL-META-anything, is not a
line editor command but an activation character.)
CONTROL-SPACE is the opposite of CONTROL-BS: it moves the cursor
forward without changing the text. SPACE alone and META-SPACE act
like any printing character. At the end of the line, CONTROL-SPACE
does nothing (it neither moves the cursor nor activates).
The remaining editing commands consist of CONTROL-something. Some of
them are only considered as line editor commands inside a line; at
the end of the line, they activate. Whether or not this is true for
a particular command will be mentioned in each description.
CONTROL-TAB moves the cursor to the end of the line, as if you typed
CONTROL-SPACE many times. (Inside the line only.)
CONTROL-FORM is the opposite: it moves the cursor to the beginning of
the line, so the two cursors coincide. (Inside or end of the line is
ok for this one.)
CONTROL-D deletes the character above the right cursor. (Inside
only.) Note that this is different from META-BS, which deletes the
character to the left of the cursor.
CONTROL-S skips ahead from the current position of the right cursor
to the next occurrence of the character you type next. If the next
character you type does not occur to the right of the cursor, nothing
happens. If the search character is a letter, the case must match.
(Inside only.)
CONTROL-K is like CONTROL-S but instead of moving the cursor it kills
characters up to (not including) the one you select. Again, nothing
happens if the character does not occur. (Inside only.)
CONTROL-R repeats the last CONTROL-S or CONTROL-K command given while
2.2 The Line Editor 19
editing the current line. It does not use the following character as
an argument, since it remembers the argument from the CONTROL-S or
CONTROL-K command. (Inside only.)
CONTROL-I enters insert mode. In this mode, all characters are
treated as if you were holding down the META key, until you leave
insert mode by typing another CONTROL command or activation
character. That is, characters which you type are inserted instead
of overwriting old ones, and BS is a deleting backspace. (Inside
only.)
CONTROL-number (that is, any decimal number typed while holding down
the CONTROL key) will cause a CONTROL command immediately following
to be repeated that many times. For example, CONTROL-5 CONTROL-BS
will move the cursor left five positions. This can be used to repeat
the BS command as well as CONTROL-BS, META-BS, CONTROL-SPACE,
CONTROL-D, CONTROL-S (finds the nth occurrence), and CONTROL-K.
CLEAR will delete everything in the line editor.
CONTROL-RETURN will retrieve the last line which was edited, as long
as you haven't typed anything since then. That is, after you
activate a line, if the very next character you type is
CONTROL-RETURN, the line is returned to the line editor. You can
send the same line again by just typing RETURN, or you can edit it.
This is very handy when a monitor command, for example, fails because
of a spelling error; you can simply say CONTROL-RETURN, correct the
error, and say RETURN to activate the corrected command.
The TAB character is treated in a special way by the line editor.
Commands like CONTROL-SPACE treat a TAB as a single character, so a
CONTROL-SPACE when the cursor points to a TAB will move several
spaces to the right. Typing a character without control bits,
however, only replaces the first space of the TAB. There will still
be a TAB in the buffer, unless the TAB was positioned so that it was
only equivalent to one space, in which case it goes away completely
when another character is typed over it.
2.3 Line Editor Activation
This section is about the workings of line editor activation: how the
line editor decides to release characters to your terminal input
buffer. There is quite a bit of arcane detail here, covering special
cases, which is not generally important to the user. This section
can be skipped by most readers.
2.3 Line Editor Activation 20
The activation mechanism can be controlled to some extent by UUOs
given by your program. Specifically, your terminal can be in normal
activation mode or special activation mode. In the latter case, your
program determines exactly which characters activate. The program
can also disable the CONTROL-RETURN function, as well as the
automatic insertion of line feed after return. However, the rest of
this discussion assumes you are in normal activation mode.
Any character with CONTROL or META on will activate unless it is
taken as a meaningful line editor command. In particular, META will
activate at the end of the line. CONTROL always activates on
characters which are not meaningful line editor commands, e.g.,
CONTROL-A always activates, and CONTROL-D activates at the end of the
line only. CONTROL-META together always activates. RETURN, LINE,
and ALT always activate, regardless of the CONTROL and META bits
used. (Actually, in the case of RETURN, it is the line feed,
supplied by the monitor, which is really the activation character.)
When you type an activation character, all the characters in the line
editor are transferred to your terminal's input buffer and are no
longer editable. If your program is doing line-at-a-time input, the
character which activated the line editor may or may not be an
activator for your program. (Normally, line editor activation
characters also activate the program, but this may be changed with
special activation. For example, the line editor cannot store
characters with control bits, so such characters always activate the
line editor if they are not line editor commands. Your program may,
however, choose not to be activated by such characters, in which case
they remain in your input buffer until a character which does
activate the program is read.) When you type a program activation
character inside a line, all characters in the line editor are moved
to your input buffer, but your program can only read (in line mode)
characters up to the activation character. The program may ask to
get a nine-bit representation for the characters, so the CONTROL and
META bits of the activation character are sent. There is a special
kludge in the line editor so that whenever you type RETURN (without
CONTROL or META), the RETURN is put at the end of the line, as if you
had typed CONTROL-TAB first. This is not true for other activation
characters, so characters after the activation character won't be
editable, but won't be available to the program either until you
activate again. Most programs are written so that something fairly
intuitive happens when you activate in the middle of the line, but it
is possible to confuse yourself. In particular, when you re-edit (by
typing CONTROL-RETURN) a line which was activated with something
other than RETURN, the activation character appears in the line
(without control bits); if you type RETURN, you get the same old
activation character, not a RETURN at all! There are some peculiar
things which happen if you delete the old activation character first,
though--it is possible to have the RETURN activate the line editor,
2.3 Line Editor Activation 21
but not put in any activation character and not actually activate
your program until you type a second RETURN.
2.4 ESCAPE and BREAK Commands
Certain special characters are used to control the status of your
display terminal. These are processed directly by the monitor's
keyboard scanner, whether or not you are in monitor mode. One
example, mentioned above, is CALL. This key stops your program, if
one is running, and returns you to monitor mode. You can also type
CONTROL-CALL or META-CALL for a deferred call--the program is stopped
when it tries to read the CALL character from your input buffer.
Thus you can type some commands into a program, followed by a
deferred call; when the program is finished with your commands and
asks for more, it will be stopped.
There are several commands using the ESC and BREAK keys. Generally,
the format is ESC or BREAK, then possibly a numeric argument, then a
letter which specifies the command. There should be a concise
summary of these commands attached to your keyboard; if not, log in
and type this:
HELP DDKEY
(or IIIKEY instead of DDKEY if you are using a III terminal) to print
the list on the XGP.
ESC O will stop typeout from your program. Any characters already in
your output buffer are deleted, and any attempted typeout from your
program is ignored. The program continues running, however. Typeout
is resumed if you type BREAK O, or if your program reads any
characters from your terminal.
Display terminals are normally in full character set mode, which
means you can type in upper and lower case letters. You can leave
this mode by typing BREAK F, which has essentially the same effect as
pushing the SHIFT LOCK key. You type ESC F to return to full
character set mode. The only use for this that I know of is that you
can convert a line of text in a file to upper case in E by typing
BREAK F, then something like CONTROL-SPACE to load the line into the
line editor, then RETURN. Try it.
Some programs which read data from your terminal expect an "end of
file" indication after the data. The thing to type to supply this
signal is CONTROL-META-LINE.
2.4 ESCAPE and BREAK Commands 22
It is possible to suspend typeout from your program temporarily
without losing output, as with ESC O. Typing CONTROL-BREAK starts
this automatic holding. The word HOLDING appears at the top of your
screen, and the program is stopped if it tries to type more
characters than fit in your output buffer. Automatic holding is
released by typing any line editor activation character, or
CONTROL-CLEAR.
Sometimes you may want to write a program which you can interrupt
with a signal from your keyboard, without having to keep checking for
terminal input in the program. For example, if you run a program
which searches a large data base by command, you may want to be able
to abort a search without stopping the program. Typing ESC I will
generate an interrupt condition which your program may enable; the
use of program interrupts is described in the UUO Manual.
2.5 The WHO Line
The next set of commands have to do with the WHO line, a display of
system status and the status of a particular job on the top two lines
of your screen. Once you start a WHO line display, it is
automatically updated until you turn it off explicitly. To start a
WHO line for the job at your terminal, type ESC W. You can see the
WHO line for another job, job number n, by typing ESC n W. To turn
off your WHO line display, type BREAK W. (Note: this does not
actually make the WHO line disappear on Data Discs, where anything
you display stays on the screen until it is explicitly erased.)
One use of the WHO line is to keep track of the progress of a job of
yours other than the one at the terminal you're using. To facilitate
this, typing ESC Q will display the WHO line of the next job in the
monitor's job table with your programmer name (or with the same name
as the job whose WHO line you are already displaying, if any).
Typing ESC Q repeatedly will cycle through all such jobs. BREAK Q
does the same thing, except that it searches the job table backwards.
This is the format of the WHO line:
III DD JBS,TCOR R,RCOR UCOR NL% DSKQ DATE DAY TIME
JOB PPN TTY QUEUE JOBNAM SIZE RUNTIME-RP XTIME-XP DSK SEG (ALIAS)
The first line is the system WHO line:
2.5 The WHO Line 23
III number of III terminals in use (maximum=6)
DD number of Data Disc channels in use (maximum=31)
JBS number of jobs logged in
TCOR total core of all jobs (including swapped out)
in blocks of 1024 words
R number of jobs actually run in the last few seconds
RCOR total core of the jobs counted in R
UCOR amount of core available for running user jobs
NL system null-time percentage over the last few seconds
DSKQ number of jobs waiting to use the disk
DATE uh, let's see...
DAY day of the week
TIME time of day (24-hr clock)
The second line refers to a particular job:
JOB the job number of the job being displayed
PPN its logged-in project-programmer name
TTY its terminal number (in octal) or DET for detached jobs
QUEUE the system queue that the job is in (see below)
JOBNAM the program being run
SIZE size of the job's core image
RUNTIME total run time since login, in minutes and seconds
RP RUNTIME as a percentage of the job's total wait time
(time the job was runnable but not running)
XTIME incremental runtime, normally reset on terminal input
but see below
XP XTIME as a percentage of incremental wait time
DSK number of incremental disk operations (reset with XTIME)
SEG name of upper segment if any
ALIAS disk PPN (see below) if any
2.5 The WHO Line 24
Some of these need more explanation. The QUEUE is an indication of
the immediate status of the job--is it runnable, waiting for input,
stopped, etc. These are the possible queue names:
RUNQ The job is runnable and not waiting for I/O, etc.
TQ This is a high-priority run queue which jobs are in for a
short time after leaving certain kinds of I/O wait.
STOP The job is stopped because it exited, the user typed CALL,
or there was an error in running the job.
NULQ The job has no core image.
IOWQ The job is waiting for some input/output operation, or for
the completion of a SLEEP or JOBRD UUO. This most often
means the job is waiting for the user to type something.
DIOW The job is waiting for some I/O operation and may not be
swapped out until it is completed.
INTW The job has suspended itself waiting for an interrupt.
DWQ The job is waiting for a device (e.g., LPT) to be free.
MTQ The job is waiting for the magnetic tape controller.
DTQ The job is waiting for the DECtape controller.
DCQ The job is waiting for the data controller
(used for mag and DEC tapes).
CMQ The job is not in core and needs to be brought in quickly;
if a job stays in this queue for long, something is wrong.
Some special characters may be displayed after the queue name:
- The job is currently running.
* The job is swapped out. A second * means the upper segment
is swapped out.
⊗ The job has been locked in core by the LOCK UUO.
\ The job is running a spacewar module on the PDP-10.
/ The job is running a spacewar module on the PDP-6.
X The job is running spacewar modules on both processors.
Some of the above may not be clear until you read the UUO Manual.
The alias is a PPN used as the default directory for disk files
instead of your logged-in PPN. There is an ALIAS monitor command to
set the alias for your job.
XTIME is an incremental run time, measured in minutes, seconds, and
60ths of a second (a 60th of a second is called a tick). It is
normally reset whenever the program is started by a monitor command
other than CONTINUE, and also whenever the job is awakened by input
from the terminal after having been in IOWQ waiting for such input.
Note that if you type ahead, so that the job never enters IOWQ,
terminal input will not reset XTIME. It is possible to inhibit
resetting of XTIME with the BREAK X command (see below). If
resetting is inhibited, the character separating spaces from ticks in
the display will be " instead of ' as it usually is.
2.5 The WHO Line 25
BREAK X inhibits resetting your job's XTIME. ESC X resumes the
automatic resetting as described above. Neither of these changes the
current value of your XTIME. Typing ESC 1 X will set your XTIME to
zero; BREAK 1 X will set it equal to your RTIME (total run time).
Both ESC 1 X and BREAK 1 X inhibit automatic resetting, so you have
to type ESC X if you want to restore this.
2.6 Page Printer Control
There are two ways of printing on display terminals. To exploit the
full capabilities of the display for graphics, display programs can
explicitly control the positioning of points, vectors, or characters.
On III terminals, 16 such display programs can be written
independently, and any combination of them activated or displayed at
any time under program control. These display programs are called
pieces of glass. On Data Disc terminals, only one display program
can be run on each Data Disc channel, although the effect of multiple
pieces of glass can be gotten in a different way by displaying more
than one channel on the screen (see Section 2.7, which describes
the video switch).
The other way of printing on a display terminal is simply to output
text to be printed in order as if on a piece of paper. The monitor
automatically "scrolls" such output; when the area of the screen
being used fills up, the text is moved up a few lines, with the top
part disappearing. Sixteen of these pieces of paper can be displayed
at once, on different parts of the screen. At any time, one of these
pieces of paper must be selected by the program as the one to receive
page printer output. The dimensions of each piece of paper are
controlled by the program, but the currently selected one can also be
controlled from the terminal with ESC commands.
The dimensions of the page printer include several factors. First,
the vertical position of the top line of the page. This can be set
by the command ESC n Y for line n. (Lines 1 and 2 are where the WHO
line goes; the normal position is line 4.) ESC Y resets the vertical
position to normal.
The scrolling function is controlled by two parameters: the number of
lines typed before a glitch (the upward repositioning of the text),
and the number of glitches on the page. These are set by ESC n L for
lines/glitch and ESC n G for glitches/screen. The defaults are 4
glitches of 9 lines for Data Disc terminals, and 12 glitches of 2
lines for III terminals. ESC L and ESC G restore the respective
counts to normal.
2.6 Page Printer Control 26
It is possible to cause automatic holding, as with CONTROL-BREAK,
every n lines or every n glitches. The commands for this are ESC n E
for every n lines, and ESC n J for every n glitches. At each pause,
the word HOLDING will appear on the third line of the display.
CONTROL-CLEAR will resume output as usual. ESC E and ESC J disable
the respective automatic pauses.
Typing ESC N will normalize your page printer. BREAK N will clear
your screen, normalize the page printer, and display the text in the
page at the normal position. To refresh the page printer display
without changing the page printer geometry, type ESC P. BREAK P will
clear the screen and then do ESC P. These are useful for getting rid
of any noise which may appear on your screen. There is a rarely-used
ESC R to refresh just the display of your line editor.
Note: Any RESET of your job, either by the RESET UUO or automatically
by the system, eliminates all but piece of paper 0, selects that
piece of paper for further output, and normalizes the page printer
display. The UUO Manual explains the RESET function.
2.7 Data Disc Control
Certain ESC and BREAK commands have special functions for Data Disc
terminals only, and some for III terminals only. This section is
about the Data Disc ones.
The usual display on a Data Disc screen is green letters (hereafter
called "white") on a black background. It is also possible to
display black on white, by typing BREAK C. To restore the normal
white on black, type ESC C. Both of these clear the screen, so you
have to type ESC P to refresh your page printer display. Black on
white display requires increasing the contrast and brightness
controls to be visible. This is not the world's most useful feature;
it is also possible, under program control, to display only part of
the screen in black on white.
The remaining Data Disc commands are used to control the video
switch. This device allows you to select from the 32 Data Disc
channels, plus various TV cameras and video synthesizers, what you
want to see on your screen. You can see more than one Data Disc
channel at a time, but only one of the analog channels (the cameras).
You can select an analog channel along with a Data Disc channel only
if the two are synchronized; e.g., the lounge TV signal can't be
combined with a Data Disc channel because the synchronization of the
former is not under our control.
2.7 Data Disc Control 27
Data Disc channels in use by a job may be public or private. Only
public channels may be selected by other users. The channel used by
a terminal is normally private. The command ESC H hides (makes
private) your terminal's channel; BREAK H makes it public.
Video switch commands are generally of the form ESC n x, where n is a
channel number (Data Disc or analog channel) and x is the command
letter. The form BREAK n x interprets n as a terminal line number.
Thus, ESC 30 S selects Data Disc channel 30, but BREAK 30 S selects
whatever channel is assigned to TTY30.
ESC or BREAK n S makes a permanent selection, which remains in effect
until you give another video switch command to change it. ESC or
BREAK n T makes a temporary selection, which reverts to the permanent
selection whenever your job is RESET by UUO or automatically. To
display more than one Data Disc channel at once, type ESC or BREAK n
A to add a channel; ESC or BREAK n D deletes a channel.
Using ESC with no numeric argument on a video switch command means
your terminal's channel. Thus, ESC S restores your own display.
BREAK with no numeric argument is the same as ESC 45, which selects
the lounge TV.* The ESC N and BREAK N commands, which normalize the
page printer on all displays, also imply ESC S on Data Discs.
Note that your program can also modify the video switch settings by
UUO.
2.8 III Control
At a III terminal, several different display programs, called pieces
of glass ("pog"), may be running at once. You can choose which of
these (zero or more at once) are actually displayed.
ESC n S selects piece of glass number n only. ESC n A adds piece of
glass n, and ESC n D deletes pog n. If no numeric argument is used,
these commands apply to all pogs, e.g., ESC D clears all pogs from
the screen.
ESC C eliminates all pogs (your page printer is still displayed). It
is different from ESC D in that the display programs are completely
forgotten, so they cannot be reselected.
------
* The first edition said, at this point, "Thus, BREAK S at 6pm on a
weekday selects Star Trek." However, I understand that we are being
spared that this season.
2.8 III Control 28
Note that the selection of display programs can also be controlled by
a UUO in your program.
2.9 Audio Switch Control
Associated with each display terminal is a loudspeaker which can be
connected to various sound sources under computer control, by an
audio switch analogous to the video switch for Data Disc channels.
There are 20 (octal) audio switch input channels, numbered 0 to 17.
Only one channel can be connected to your speaker at a time.
One of the input channels is normally silent, but is connected to the
telephone paging system when a page is in progress (i.e., someone has
dialed 9 on the com line). When you are listening to another
channel, you may choose to be switched to the paging channel
automatically when a page is in progress and then returned to your
original channel.
The command ESC n U will select audio channel n and allow paging
interruption. BREAK n U selects channel n and does not allow paging.
ESC U or BREAK U selects the silence/paging channel.
At a Data Disc, the BREAK S, BREAK T, and BREAK A commands, which
select the lounge TV picture for your screen, also select the lounge
TV audio for your speaker.
Your program can control the audio switch selection for your terminal
by UUO. Although programs cannot in general change the audio switch
setting for another terminal, there is a BEEP UUO which can be used
to cause any terminal's loudspeaker to be connected to the beep
generator for a short time (less than one second). This is used by,
e.g., the SEND command to call the recipient's attention to a message
on his screen. You can permit or refuse such beep connections by UUO
or by escape commands; BREAK B refuses beeps, and ESC B permits them.
Any change to your audio switch setting by other means (e.g. ESC U)
also cancels the effect of BREAK B, so you must repeat the BREAK B
command after changing your selection.
As we go to press, the following audio switch inputs are connected:
2.9 Audio Switch Control 29
0 silence/paging
1 lounge TV
2 tuner in Helliwell's office
3 tuner in machine room
4 digital-to-analog converter channel 1
5 beep generator
6 AM tuner
7 tuner in Harvey's office
10 Voder
16 TV in Moravec's office
17 KSAN
3. Teletypes 30
SECTION 3
TELETYPES
Teletypes do not have display screens, nor do they have the full
Stanford ASCII character set. This means that certain things are
typed differently.
The CONTROL (CTRL) key on a Teletype does not produce the same codes
as CONTROL on a display. Instead, it produces codes which, on
display terminals, represent some of the TOP characters. Most
programs which deal with Teletypes, however, either cleverly use only
characters which are the same on all terminals, or have special
notations for use at Teletypes. In particular, there is an SOS
representation (named after a Teletype editor) for printing
characters not found on Teletypes, namely a question mark followed by
some other character. See Appendix 13.
To get the effect of CALL, type CONTROL-C twice. (Control characters
on Teletypes generally echo as ↑<character>, so now you know why CALL
on displays prints ↑C.) Deferred CALL is a single CONTROL-C.
Although there are several models of Teletypes and similar terminals,
most of ours do not have lower case letters. The SHIFT key on these
terminals, like the TOP key on our displays, produces
non-alphanumeric printing characters. Most of these are labelled on
the Teletype keys, but you may not find [ (SHIFT-K), \ (SHIFT-L), or
] (SHIFT-M) labelled on some models.
There is no line editor on Teletypes. You can delete the last
character on a line by typing RUBOUT, which prints a backslash and
then the deleted character. Successive RUBOUTs will print the
characters deleted, until a non-RUBOUT, which prints another
backslash and then whatever you typed. CONTROL-U will delete the
entire line, like CLEAR on a display.
Most of the ESC and BREAK commands have no Teletype equivalent.
CONTROL-O flushes typeout like ESC O. A second CONTROL-O resumes
typeout like BREAK O. CONTROL-B starts and stops typeout holding,
like CONTROL-BREAK and CONTROL-CLEAR on display terminals. There are
monitor commands to provide some of the ESC facilities; e.g.,
TTY WHO
will type out your who line once.
3. Teletypes 31
The end-of-file character for Teletypes is CONTROL-Z. If your
program does input by TTYUUO, CONTROL-Z is converted to 612 (the code
for CONTROL-META-LINE). TAB is typed as CONTROL-I. FORM is
CONTROL-L, and VT is CONTROL-K. RETURN, LINE, and ALT have
corresponding Teletype keys. (The key for ALT may be labelled ALT
MODE, ESCAPE, or PREFIX depending on when the Teletype was built.)
It is possible to use our computer from another computer, over the
ARPA network, or by telephone connection. The Teletype conventions
also apply to these connections.
4. Basic Monitor Commands 32
SECTION 4
BASIC MONITOR COMMANDS
Commands like LOGIN tell the monitor to run particular system
programs in your core image. In this section, monitor commands which
do not refer to a specific program are described. Some of them do
not refer to programs in your core image at all, but are handled
entirely within the monitor itself; others run programs, but allow
you to specify the program as a command argument rather than implying
a particular one like LOGIN.
4.1 Running Programs
The RUN command takes as arguments an optional device name, a file
name, and an optional core size argument. If the first argument is
not a device name, DSK is used. The only allowable devices are DSK,
SYS, MTAn, and DTAn. Running programs from magnetic tape or DECtape
is not recommended. If the file name does not include an extension,
DMP is implied.
The core size argument, if any, should be a decimal number indicating
the number of 1K (1024 word) blocks desired for your core image.
This must be at least as much as the saved core image, but you can
ask for more. Certain programs with variable buffer space will use
as much as you initially allocate. (Programs can increase their core
size dynamically by UUO.)
If you are running from magnetic tape, the core size argument must be
used; otherwise, the size of your core image before giving the
command will be used. This is because the monitor cannot determine
the size of a file on magnetic tape before reading it.
The program is loaded into your core image, your job name is set to
the name of the dump file, and the program is started at the starting
address specified in the dump file.
The R command is used for running system programs. The command
R FOO 10
is identical to
RUN SYS:FOO 10
4.1 Running Programs 33
(The SYS device is actually the disk, but with the special system
directory [1,3] implied. This directory is used to store system dump
files.)
By using the GET command (abbreviated G), it is possible to load a
dump file into your core image without starting it. This command
takes the same arguments as RUN, but instead of starting the program,
it types out a message indicating the size of your core image and
leaves your terminal in monitor mode.
All of the commands in this section cause a RESET of your job.
4.2 Manipulating Core Images
The following commands refer to words in the Job Data Area (see page
15) of your core image. These words are generally set up by the
monitor or the LOADER. The UUO Manual has a complete explanation of
the Job Data Area.
The CORE command is used to find out or change the size of your core
image. CORE may be abbreviated C. If you include an argument, the
size of your core image will be set to that many blocks. If you do
not give an argument, your core size is typed out, along with the
size of your upper segment, if any; a final line gives the total
amount of core available for user jobs. If you give the CORE command
when you are not logged in, you get only the last line.
The command CORE 0 destroys your core image. It also causes a system
RESET of your job, releasing any I/O devices you were using, etc.
The way to create core image dump files which can be loaded later is
with the SAVE command. This takes device, file, and size arguments
just like GET. This command also does a RESET, and it does not save
your accumulators. Therefore, the program cannot be continued after
a SAVE command, although it can be restarted.
Unless your core image includes DDT or RAID (JOBDDT nonzero), only
the locations up to the address in JOBFF are saved. (This does not
apply if you use a core size argument.) JOBFF is set by the LOADER to
the highest address it loads into, so any core which was allocated
dynamically by your program will not be saved unless the program
updates JOBFF. I/O buffers allocated for you by the system are
allocated above JOBFF, which the monitor then sets to the new highest
address.
If your program includes an upper segment which you wish to save, you
4.2 Manipulating Core Images 34
should use the command SSAVE. This is just like SAVE in other
respects. SAVE never saves upper segments.
It is possible to examine and alter words in your core image
individually by monitor commands. The command E (examine) with an
octal argument will type the contents of the specified address in
octal. The DE (deposit) command takes three arguments in octal: the
left and right halves of the word you want to deposit, and the
address. DE without the address argument uses the address of the
last E or DE command. E with no argument examines the location
following the last one used by E or DE. (Note that the DDT and RAID
debugging programs provide a much more versatile way to do this.)
If your core image includes an upper segment (see page 14), you can
set or clear the write protection bit with the SETUWP or CLRUWP
commands. You cannot clear write protection for a sharable upper
segment if it is protected against you. (See the UUO Manual for a
complete discussion of upper segment protection.) These commands also
take an optional octal argument, which is used to set the protection
code for the segment if you are permitted to change the code.
4.3 Starting Programs
The following commands refer to words in the Job Data Area (see page
15) of your core image. These words are generally set up by the
monitor or the LOADER (except for JOBREN). The UUO Manual has a
complete explanation of the Job Data Area.
The START command (abbreviated S) is generally used to start a
program at its normal starting address in JOBSA. This command can
also be used with an octal argument specifying some other address.
If the octal argument is preceded by + or -, the number is added to
or subtracted from the program's normal starting address to determine
the desired starting address.
The REENTER command starts the program at the reenter address
specified in JOBREN, if there is one. JOBREN must be set by the
program if it wants to use this capability. Program documentation
will explain the use of the REENTER command for a particular program.
An octal argument preceded by + (optional in this case) or - will be
added to or subtracted from the reenter address.
The DDT command starts the program at the address in JOBDDT, if any.
This address is set by the LOADER if either DDT or RAID (the
debugging programs for Teletypes or displays) is loaded with your
program.
4.3 Starting Programs 35
When a program is stopped by typing CALL, by a UUO in the program, or
by various other conditions, the address of the next instruction to
be executed is stored in JOBPC. If the job is continuable (not
stopped because of an irrecoverable error), the CONTINUE command will
start it at that address. (The START, REENTER, and DDT commands will
work even if the job is not continuable, except for certain errors
which destroy the core image irretrievably.)
All of the above commands place your terminal in user mode, that is,
anything you type will be processed under control of your program.
It is also possible to start a program, but leave the terminal in
monitor mode. In this case you can still enter monitor commands
which do not affect your core image. Monitor commands which are
illegal while your program is running will give the message PLEASE
TYPE ↑C FIRST.
The CSTART command is like START but leaves your terminal in monitor
mode. Like START, it will take the desired start address as an
argument or use the contents of JOBSA. The CCONTINUE command is the
monitor mode equivalent of CONTINUE. There is no such equivalent for
REENTER or DDT. With the terminal in monitor mode, the program can
still type output on it, but an attempt at reading from the terminal
will make the job wait (in IOWQ) until the terminal is placed in user
mode.
The HALT command stops your program. The monitor converts the CALL
key into this command, so you should never need to type it
explicitly. (The only time you can type it explicitly, of course, is
if you started the program with CSTART or CCONTINUE.)
4.4 Detached Jobs
Normally, any user job is associated with a particular terminal.
However, it is possible to detach the job so it can continue running
while you do something else (another job) at your terminal. Also,
the monitor sometimes starts up detached jobs itself to perform
various system functions.
Detached jobs can run, and do all the things attached jobs can do,
except that if they try to output to device TTY, the output is lost;
attempted input from TTY makes the job wait indefinitely (until it is
attached). If a detached program executes an EXIT UUO, the job is
killed.
The DETACH command detaches your job, leaving your terminal in
monitor mode and not logged in. You can then log in again without
4.4 Detached Jobs 36
affecting the old job. DETACH takes no arguments. Several commands
described below combine the DETACH function with other useful things.
Please remember not to leave jobs detached forever, but to log them
out eventually!
The ATTACH command is used to attach your terminal to a detached job.
If you are already logged in, your old job is detached. The ATTACH
command takes two arguments, a job number and the PPN under which
that job is logged in. (If you are already logged in with the same
PPN, you need not give the second argument.) The job must be detached
before you give the command. Note that if you were displaying a WHO
line for your old job, it will still be displayed, indicating the job
as detached. This is handy for re-attaching it when you want to, in
that it shows the job number. (Typing ESC W again will, of course,
display the WHO line for your new job.)
The FORK command will detach your old job and log in a new one. It
is faster than DETACH followed by LOGIN, because it does not run the
LOGIN program. Instead, it merely copies the system information from
your old job into the new job. In particular, if you have an alias
in your old job, it is copied to the new job as well. If the
system's job capacity is used up, so that it is impossible to start a
new job, your terminal remains attached to the existing job.
Often you want your program to continue running in the old job while
it is detached. You could say CCONTINUE and then DETACH, but the
command CDETACH combines these functions. There is also a CFORK
command which combines CCONTINUE and FORK.
4.5 Device Control
Certain I/O devices can only be used by one user at a time, such as a
magnetic tape unit. In some cases, like the line printer, the system
provides a facility for queueing print requests so that individual
users need not actually control the device themselves. However, when
a user does need to use such a device, the ASSIGN command is used to
ensure that only one user at a time tries to use the device. The
ASSIGN command (abbreviated A) can also be used to cause a logical
device name to be associated with a particular device. Thereafter,
any reference by your program to the logical name will be translated
into the corresponding physical device.
The command takes two arguments, a physical device name, and an
optional logical name. The physical name can be generic: the command
ASSIGN MTA
4.5 Device Control 37
will select an available mag tape unit (MTA0 or MTA1) if there is one
available. You can also select a particular unit explicitly.
The logical name feature is sometimes used by programs to allow you
to control their I/O without having to type instructions to the
program itself. For example, a program which produces a listing
output might direct it to a particular filename on device name LST.
Before running the program, you could type
ASSIGN DSK LST
to write the listing file on the disk, or
ASSIGN TTY LST
to type it out at your terminal. You can also change the meaning of
what is normally a physical device name this way--the command
ASSIGN DSK LPT
will make a program which was written to write its output on the line
printer use a disk file instead. You might do this if the line
printer is not available when you want to run the program.
Non-local guest account users (see LOGIN, Section 5.1) cannot use
most non-sharable devices, either by program request or by the ASSIGN
command. Since there is no operator on this system, remote users
have no way to mount tapes, collect listings, etc.; hence, the
monitor does not allow such users to attempt I/O on those devices.
The ASSIGN command is used in a special way for User Disk Packs. A
UDP may be used as a public or a private device. In the former case,
other jobs may use the same UDP at the same time, as with the system
file disks. A privately assigned UDP, however, is restricted to the
one job which assigned it. (Note: a privately assigned UDP is still
a sharable device, in the sense that the job which owns it can
operate on several files simultaneously, unlike non-sharable devices
like DECtape drives, on which only one operation can be in progress
at any time.) A UDP is normally a file-structured device, with a
directory structure just like the one described for the main file
disk in Section 1.5. However, it is also possible to use a UDP as an
unstructured device, in which allocation of storage on the disk pack
is done explicitly by the user program. This mode of using the UDP
is called old mode (because it used to be the only mode available).
The format of the ASSIGN command for a UDP is
ASSIGN mode UDPn logical-name
The optional mode argument can be
4.5 Device Control 38
PUBLIC public access, file structured UDP
PRIVATE private access, file structured UDP
OLD private access, non-structured UDP
The default mode is PUBLIC. A later ASSIGN command for the same
device can be used to change the mode from PRIVATE to PUBLIC, or from
PUBLIC to PRIVATE if no other jobs are using the device. However, to
change into or out of OLD mode, the device must first be deassigned
by all jobs using it. This is because a particular pack either is or
isn't formatted for file structured use, and the mode given in the
ASSIGN command must agree with that of the pack itself. (A mismatch
is not detected when you give the ASSIGN command, but will be caught
when your program actually tries to use the device.) The only
exception is that a formatted pack may be read, but not written, in
OLD mode.
Although we have only one disk drive for user packs at present, the
monitor provides for the possibility of several such drives, and
treats UDP as a generic device name. The command ASSIGN UDP will
select a drive only if it is not in use, although a command which
specifies a particular drive (ASSIGN UDP1) will succeed if the drive
is in use but PUBLIC. Unlike other devices, the UDP must be ASSIGNed
before it can be used by a program, to ensure that the proper mode is
used. For more details on the use of user packs, see the UUO Manual.
Once you have assigned a device with the ASSIGN command, no other job
can use it until you release it with the DEASSIGN command. This
command, abbreviated D, takes either a logical or a physical device
name as argument. (Note--Assigning DSK or SYS does not prevent other
users from using the disk.) It is possible for a program to use a
device which is not assigned, but the device is released in that case
as soon as the program stops using it. The DEASSIGN command with no
argument will deassign all devices assigned by your job.
Because UDPs can be assigned in a way which permits public access,
the DEASSIGN command for a UDP types a message at your terminal
indicating whether or not the pack should be dismounted. If you
interrupt a program which is using a UDP and deassign the UDP, it
will still be considered in use by your program until you reset it
(for example, by the CORE 0 command). You will then be told that you
may dismount the pack.
The job which has a device assigned may give it to another job with
the REASSIGN command. This command takes two arguments, the device
name and a job number. This can occasionally be useful if, for
example, one job writes a tape which another should then read. The
REASSIGN command prevents the possibility of another job grabbing the
tape unit before the intended recipient does.
4.5 Device Control 39
The FINISH command (abbreviated F) is like DEASSIGN except that it
releases the device from your program as well as from the ASSIGN
command assignment. If the device is a directory device which your
program had open for output, the file is closed so that as much data
as the program wrote will be saved. (This applies in the case in
which the program was stopped before its normal exit, either by CALL
or by an error.) F with no argument releases all devices.
The FLUSH command is designed to allow a terminal which is not in use
but somehow has something in its input or output buffer to be
emptied. It takes a device name as argument; the device must be a
terminal which is not in use, or your own terminal. This command may
be used without logging in.
4.6 System Information
Several commands exist to find out various things about your job or
others. Some of these duplicate information available on the WHO
line at display terminals. None of the commands in this section
affect your core image.
The PJOB command types the job number of your job, if you give the
command with no argument. If you use a device name as the argument,
it types the number of the job using the device. (If the device is
not in use, it says so.) The argument can be a name of the form DDn,
to find out who is using Data Disc channel n. You will be told the
TTY line number, if any, as well as the job number. Also, if the
argument is a UDP, the command may type out UDP1 PUBLIC if
applicable, and will type a job number only if that job has assigned
the drive as PRIVATE or OLD.
The PPPN command prints out the logged in PPN and the alias, if any,
for your own job (no argument) or the job number you give as
argument.
The PTTY command prints out the terminal line number of your own or
another job. If the terminal is a Data Disc, it also prints the
channel number. The TIME command, which also takes an optional job
number argument, types out five quantities for the specified job; the
first four are times, in hours:minutes:seconds'ticks (a tick is one
sixtieth of a second):
4.6 System Information 40
TOTAL is the total run time for the job.
INCREMENTis the run time since a TIME command for this job was
given by the job itself. That is, the INCREMENT time
is reset when you give a TIME command for your own job,
but not when you give one for another job.
XTIME is the same as the XTIME displayed on the WHO line--it is
reset whenever the job is started by a command other than
CONTINUE, and whenever the program is returned to the RUN
queue after waiting for terminal input. This meaning of
XTIME can be changed; see page 24 for a complete
discussion of XTIME.
WAIT is the time the job has waited for the system, including
time in RUNQ and disk I/O wait, but not tty I/O wait,
STOP, etc. It is a measure of the quality of service
the job is getting.
KCS (kilo-core-seconds) is a measure of the demands
the job has made on the system. It is incremented by the
job's core size (in K) every second of runtime.
The command TIME 0 types the time since the last system reload, the
percentage of that time spent in core shuffling, and the percentage
spent running the null job (what the system does when there are no
real jobs it can run). It also types some extra information for the
benefit of system wizards, which varies with their interests at the
moment and is generally not meaningful to users, e.g., the percentage
of time spent in the monitor at interrupt level.
The DAYTIME command with no argument types the current day of the
week, date, and time. With a job number argument, it types the time
that job logged in, the time it was last run, and the current time.
DAYTIME 0 specifies your own job. If the job has been logged in since
the previous day, dates (day of the month) are typed along with the
three times.
The RESOURCES command lists the available system resources: it types
the number of free tracks on the file disk, and the names of free
devices (mag tape, etc.) other than the disk, IMP, and terminals. A
separate line is typed for each UDP drive (currently there is only
one) unless the drive is detached from the system or being used for
swapping. The line contains just the device name if the drive is
free; otherwise it indicates whether it is PUBLIC or PRIVATE; if the
drive has a file-structured pack mounted, its name (volume ID) and
the number of free tracks, as for the DSK device, will be typed if
known to the monitor. (That is, the name will be typed if any
input/output operation has actually happened on that pack since it
was mounted.)
The FILES command lists disk files in use by a job, with some status
information. It can take a job number argument (0 means your own
4.6 System Information 41
job), in which case all files in use by that job are listed, or a
filename argument, in which case the status of the specified file is
displayed (if it is being used by any job). Each line typed by this
command contains the job number of the job using the file; the
filename, extension, and directory ppn of the file; the number of
records in the file; the number of the record currently being read or
written; and the way the file is being used: R for read, W for write,
or RA for read-alter, possibly followed by E for end-of-file seen.
The letter U indicates that the file is on a UDP. The FILES command
with no argument is normally equivalent to FILES 0; however, if a
FILES command results in more information to type than fits in the
output buffer, the command lists as much as will fit followed by a
line with an ellipsis (...), and a FILES command with no argument
will continue the list from that point.
The HELLO command types the name of the current version of the
monitor.
All of the above commands are legal when you are not logged in. The
following one is not.
The SLEVEL command types out your current service level reservation.
The service level system attempts to guarantee the reserved
percentage of the computer's time to programmers who make such
reservations. See the RSL command, in Appendix 6.
4.7 Miscellaneous Commands
The TTY command can be used to change several characteristics of your
terminal. It takes as argument a keyword specifying the thing to
change. As in typing monitor commands, only enough letters of the
keyword as necessary to make it unique need be typed. The keyword
may be preceded by NO or - to reset the corresponding switch. The
keywords are
4.7 Miscellaneous Commands 42
TABS declares that the terminal has hardware tabs, so the
monitor will not convert tabs to spaces on output.
ECHO tells the monitor to send back to the terminal the
characters you type in.
FILL tells the monitor to insert extra carriage returns when a
return is typed out at the terminal, to give the carriage
time to return to the left margin. This is used mainly
for 30 character per second terminals.
FULL declares that the terminal has lower case letters, so
lower case should not be changed to upper case on output.
Equivalent to ESC F on a display; NO FULL is like BREAK F.
UPDATE enables automatic resetting of XTIME, like ESC X from a
display. NO UPDATE is like BREAK X.
TIME resets XTIME and stops automatic resetting, like ESC 1 X.
NO TIME, like BREAK 1 X, sets XTIME to the total run time.
WHO types out your job's WHO line. "TTY WHO n" will type out
the WHO line for job n; "TTY WHO 0" or "TTY -WHO" types
out the system WHO line.
The TABS, ECHO, and FILL keywords have no effect at display
terminals. You need not be logged in to give the TTY command, except
for the UPDATE and TIME functions.
The ALIAS command is used to set your job's disk PPN or alias. If
you have an alias, all disk references by your job which do not
include an explicit PPN will use the alias directory rather than your
logged-in PPN directory. The argument can be PRJ,PRG to set the
alias to that PPN, or just PRJ to use your own programmer name in the
alias. No argument resets your alias to zero, so your logged-in PPN
will be used for disk files. If you have an alias, your logged-in
PPN is still checked for file protection purposes.
The TALK command can be used to talk to a user at another terminal.
It takes a device name as argument. The device must be a terminal,
which must be in monitor mode and must not have any characters in its
input buffer. (Device CTY, the PDP-10 console Teletype, is never
busy; TALK CTY always succeeds. Note to remote users: There is no
operator on this system; TALK CTY is not a good way to get
assistance!) If the command succeeds, all characters you type are
typed out on the other terminal, and vice versa. If the terminal you
specify was already in a talk ring, you are added to the ring; all
characters typed at any terminal in the ring appear on all the
others. You leave the talk ring by typing CALL. You need not be
logged in to enter a talk ring.
The KILL command can be used to kill another job with your programmer
name. It takes the job number as its argument.
5. System Program Commands 43
SECTION 5
SYSTEM PROGRAM COMMANDS
The remaining monitor commands all run particular system programs in
your core image. There are a few main groups of these commands and a
few miscellaneous ones. These commands are documented along with the
programs they run. The next two sections are about the LOGIN and
LOGOUT programs and the commands which run them; these were briefly
introduced earlier. The major command groups are then presented, and
finally the miscellaneous system programs. Many system programs are
not run by special monitor commands, but by the R command. Those
programs are not documented here, but in separate manuals.
5.1 LOGIN
The LOGIN command is used to begin a session of using the computer.
It runs the LOGIN program, which provides several optional services
as well as setting up the necessary system tables for your job.
The LOGIN command may be abbreviated L. It takes one argument, a
project-programmer name. Different characters used between the two
parts of the name are used for different options:
PRJ,PRG types all system messages and processes OPTION.TXT
(see below)
PRJ/PRG types system messages new since last login, processes
OPTION.TXT
PRJ.PRG types no messages, ignores OPTION.TXT; for fast login
PRJ%PRG sets new password, as explained below, then acts
like PRJ,PRG
System messages are notices for all users, sent by the MAIL * command
and stored in the file NOTICE.TXT[2,2]. There may also be messages
addressed to a particular project, to a particular programmer, or to
a PPN. Mail to your project is treated like system messages. The
handling of programmer or PPN mail is explained below.
It is possible to set a password and file protection codes to
restrict access to a particular PPN. If the PPN you specify to LOGIN
has a password, LOGIN types Password= and you must type the correct
password to log in. Echoing of input characters is turned off so the
password does not print. Passwords may be one to six letters or
5.1 LOGIN 44
digits followed by RETURN. To protect files from unauthorized
access, there is a protection code associated with each file. The
code specifies the access allowed to the file for its owner (i.e., a
user logged in under the file's PPN), for other authorized AI Lab
users, and for guest users who are logged in remotely (from the ARPA
network, dial-up telephone lines, or campus terminals). You can set
the protection code for a file using the COPY program (see Appendix
2). However, you must use the LOGIN program to set the protection
code of your file directory itself, and the default protection code
which is assigned to new files created in your directory if the
program writing the file does not specify a value explicitly. If you
use % as the delimiter between the project and programmer names when
you log in, LOGIN will give you the opportunity to change your
password, the file directory protection, and the default protection
for new files. The protection codes are entered as three-digit octal
numbers, with the following meanings:
Bit Meaning in directory protection code
400 password is for remote logins only (see below)
200 unused
100 owner may not write files
040 local users may not change protection of files
020 local users may not read directory or any files
010 local users may not write any files
004 guest users may not change protection of files
002 guest users may not read directory or any files
001 guest users may not write any files
Bit Meaning in file protection code
400 don't dump this file (see DART, Appendix 5)
200 delete protect (see COPY, Appendix 2)
100 owner may not overwrite this file
040 local users may not change protection of this file
020 local users may not read this file
010 local users may not overwrite this file
004 guest users may not change protection of this file
002 guest users may not read this file
001 guest users may not overwrite this file
If the 400 bit is on in the protection code for a file directory, the
password associated with that area is used only for logins from a
remote site; no password will be required for local login on that
PPN. Except for the special NET,GUE guest account (see below)*,
------
* At the present time the NET,GUE account has been discontinued,
because it was using too much computer time. People who are not
authorized users cannot log in remotely. A few monitor commands are
5.1 LOGIN 45
remote login is not allowed on a PPN which does not have a password;
thus, if you want to be able to log in remotely but do not want to
have to type a password for local login, you can set the 400 bit in
your directory's protection code. Remote users without accounts on
the system can log in as NET,GUE (network guest) without a password.
(Instead, if you log in as NET,GUE you will be asked to type in your
name. Any name you give is accepted and stored to identify your job
as long as you remain logged in; the FINGER command (see page 57)
will type the name you give to identify you to other users.) It is
possible to set up special guest accounts without the password
requirement for use by specific AI Lab project groups; consult a
system programmer for more information on this.
Users with access to local terminals who sometimes need to log in
remotely can set a password (with %) for their own PPNs; remote users
who want to establish accounts here should communicate with Lester
Earnest. (Type the command MAIL LES.) Sometimes you may find the
system is in maintenance mode, which means that the monitor is being
debugged and the system is not available for normal use. If you try
to log in at such a time you will be asked for the maintenance
password.
The further details of LOGIN's operation are controlled by a file
named OPTION.TXT which you may have in your directory. If there is
one, it is searched for a line of the form
LOGIN:opt1,opt2,opt3;comments
where opt1...opt3 are the desired options. Spaces may be used in the
obvious places. Only the first six letters of an option name are
read. Upper or lower case is ok. Several other programs use this
OPTION.TXT file, looking for their own option lines. The LOGIN
options are as follows:
------
allowed without login, as mentioned in the individual command
descriptions. The special guest account capability still exists,
however, as does the file protection mechanism.
5.1 LOGIN 46
ME Tells you your fortune.
MESSAG Types your mail without asking; see below.
LOGRUN Runs the LOGRUN program, which executes monitor commands
from a LOGRUN entry in OPTION.TXT; see below for details.
INIT Runs the file INIT.DMP in your directory after login.
Doesn't work if you also have LOGRUN.
WHO Starts a WHO line automatically if you are at a display
terminal, as if you had typed ESC W.
UNHIDE Makes your Data Disc channel public, like BREAK H.
FULL If you are at a Teletype, sets the full character set mode
switch. Equivalent to TTY FULL.
TABS If you are at a Teletype, clears the tab expand bit; tabs
will not be converted to spaces on output. Like TTY TABS.
FILL If you are at a Teletype, sets the fill switch to insert
extra carriage returns on output to give the carriage time
to get all the way back. Like TTY FILL.
DIGEST Tells you if there is a new Associated Press news digest
that came in after the last time you logged in and asks
you if it should type it out.
PORNO Try it and see. Doesn't work if you have LOGRUN or INIT.
NOMAIL Avoids being asked questions about message files. This is
for people who like to type ahead while LOGIN is running.
The exact effect depends on what other options are used;
see below.
AUDIO=n Selects audio switch input channel n to your speaker if
you are at a display terminal. "n" is an octal number.
"AUDIO=-n" inhibits telephone paging interrupts,
like BREAK n U.
If there is a message addressed to your programmer name or to your
PPN, LOGIN normally types
THERE'S A NOTE FOR prg (or prjprg)
READ IT NOW?
If you type Y, the message file is printed, and you are asked if you
want to delete it. (You can also type R, which will treat the mail
like a system message file, i.e., LOGIN doesn't type header lines,
and if you used a slash in the command it only types messages which
came since you last logged in. In this case it does not ask if you
want to delete the file.) Note: Mail is normally sent to programmer
names, not PPNs. Some people send PPN mail to themselves as
reminders.
If you have the MESSAG option but not the NOMAIL option, then mail is
always typed out without asking first. If you have both MESSAG and
NOMAIL, the mail is typed but you are not given the chance to delete
it. If you have NOMAIL alone, you get the THERE'S A NOTE... line
but not the mail itself. (See the RCV command for another way to
process your mail.)
5.1 LOGIN 47
If you have DIGEST and NOMAIL, you are notified of a new A.P. digest
but it is not typed out. (RCV will also do this for you.) It is also
possible to get automatic notification of incoming news stories on
particular topics from the NS program; these messages are treated
like programmer mail with respect to MESSAG and NOMAIL.
The LOGRUN program looks for a line in your OPTION.TXT file starting
with LOGRUN:. It then takes that line, and all following lines until
a semicolon is seen, and makes them be executed as if you typed them
in. (The semicolon is required.)
5.2 LOGOUT
The command for terminating a session on the computer is KJOB (kill
job), which runs the LOGOUT program. The command may be abbreviated
K. It takes an optional switch argument to select various optional
features. The OPTION.TXT file is also used to control logout
options.
The LOGOUT program normally types out several lines of accounting
information, e.g., computer time used. If you are not logged in
elsewhere, it deletes any files in your directory with extension RPG
(these are the files the RPG system uses to remember the commands you
gave), and if there are no files in your directory, it deletes the
directory itself.
If you have the RPGSAV option (see below), LOGOUT will look for
TMPCOR files (simulated files in core storage) used by some
processors for remembering RPG commands instead of disk files, and
copy them to the disk so they will be remembered the next time you
log in. Note that this will not be done if you use the /F switch
(below) for fast logout. Note also that LOGOUT does not save TMPCOR
files created under an alias, even if you are still aliased when you
give the KJOB command. (The monitor resets your disk PPN to your
logged-in PPN before running LOGOUT.)
You are told if you have another job logged in with the same PPN, and
if you have assigned any private devices (mag tape, etc.) you are
reminded to unload them.
This normal processing can be affected by switches in the command
itself or by options in the OPTION.TXT file. LOGOUT looks for a line
in OPTION.TXT of the form
LOGOUT:RPGSAV,ME,FAST;
5.2 LOGOUT 48
(Of course, you need not use all the options.) These options, if
found, have the following effect:
RPGSAV Don't delete RPG files.
ME Type a friendly message (try it).
FAST Just log out, don't delete anything,
don't save TMPCOR, don't print statistics.
Switches are single letters preceded by a slash (e.g., KJOB/F). The
switches are:
/K Kill RPG files (only necessary with the RPGSAV option.)
/S Save RPG files.
/M Type a message, like the ME option.
/F Fast logout.
/Z Zero the disk. Deletes all your files, after asking if
you really mean it.
There are two functions of LOGOUT which are performed when you are
not logged in elsewhere, regardless of options or switches used: the
"creation date" entry for your file directory is updated to reflect
your most recent logout (this information is used by FINGER), and if
you have a file named LOGOUT.MSG, it is typed and deleted.
There are two other monitor commands which run the LOGOUT program,
for logging in with another PPN, and for attaching to an existing job
(see the ATTACH command, Section 4.4.) They are
KLOG logout-switches ppn
KATTACH jobnum ppn logout-switches
The logout switches are as described above. The other arguments are
in the required form for the LOGIN and ATTACH commands.
Finally, there is a LOGOUT command, which is exactly the same as KJOB
but no arguments are allowed.
Any of these commands, when typed at a PTY which is not owned by a
TELNET server (that is, not the virtual terminal of an ARPA network
user), simply kills the job without running the LOGOUT program. This
has approximately the effect of KJOB/F.
5.3 RPG
The RPG commands have already been mentioned. They run the RPG
program, which then runs various other system programs. The commands
5.3 RPG 49
are divided into two basic groups. The first, for text file editing,
take a file specifier as argument:
CTV create a file with TV
TV edit a file with TV
CREATE create a file with SOS
EDIT edit a file with SOS
MAKE create a file with TECO
TECO edit a file with TECO
The other major editor, E, includes the necessary code to carry out
the RPG functions itself, e.g., default extensions and remembering
the commands. The following commands are, therefore, not strictly
RPG commands but function equivalently:
CETV create a file with E
ETV edit a file with E
READ edit with E in book mode
The second group, for program compilation, take one or more program
names, along with various option switches:
COMPILE compile programs
LOAD compile and load programs
EXECUTE compile, load, and run programs
PREPARE compile and load with a debugger
DEBUG compile, load with a debugger, and start the debugger
TRY compile, load with a debugger, and start the program
PUB produce a document with the PUB Document Compiler
Finally, one more command, used in conjunction with the compile-type
commands, which takes no arguments:
CREF produce cross-reference listings from compilations
The complete description of these commands, with the command syntax
and the processing options provided, is included as Appendix 1.
5.4 COPY and SPOOL
The next major group of commands runs the COPY program. Their
arguments are generally in the form "new-file ← old-file":
COPY copy a file
TRANSFER copy and delete the original
RENAME rename a file or change protection
5.4 COPY and SPOOL 50
The following COPY commands imply a destination, and take just one or
more input file specifications (separated by commas if more than
one):
DELETE delete a file
TYPE copy to the terminal
LIST copy to the line printer (SPOOL, below, is preferred)
PRINT copy to the line printer, different format options
XGPLIST copy to the Xerox Graphics Printer (XSPOOL is preferred)
DIRECTORYtype file directory
The COPY manual explains these commands fully, along with various
options specified in the argument list; see Appendix 2.
Since only one job can use the line printer or XGP at a time, if
several people want to make listings at once there is a scheduling
problem. To solve this, the system allows listing requests to be
stored on disk, and processed one at a time by spoolers which
actually control the LPT and XGP. The system commands for this
function are:
SPOOL request line printer listing of specified file(s)
XSPOOL request XGP listing of specified file(s)
UNSPOOL delete a spooler request
QSPOOL type out spooler status and queues
The SPOOL commands also allow editing options to be specified in the
argument list; see Appendix 3 for details.
The commands in this section all require that you be logged in,
except for TYPE, DIRECTORY, and QSPOOL.
5.5 MAIL 51
5.5 MAIL
Several commands are provided for sending messages to other users.
Messages can be filed on disk, so that the addressee will be notified
about them by LOGIN, or they can be sent directly to the terminal of
a logged-in user. There is also an automatic reminder system which
allows delayed messages. The commands for processing messages are:
MAIL send a message to a user's message file
SEND send a message to a user's terminal
REMIND request a delayed message
GRIPE send a message complaining about a system problem
PLAN create plan file for FINGER (see page 57)
RCV edit message files
LATER request delayed execution of a program
CANCEL delete REMIND or LATER requests
The usual format of the MAIL and SEND commands is
MAIL user message
SEND user message
where user is a programmer name and message is the text you want
sent. If you do not include a message in the command, the MAIL
program will ask you to type a message, which may then have more than
one line. The complete description of these commands is in Appendix
4.
The commands in this section require that you be logged in, except
for MAIL, SEND, GRIPE, and RCV.
5.6 DART
DART is a program to save disk files on magnetic tape and restore
them as needed. It also handles mag tape positioning commands. The
file dumping commands take disk file names as arguments:
DUMP dump disk files onto tape
RESTORE restore files from tape to disk
LOCATE find which tape has dumped copy of files
TLIST list all files on a tape
The tape positioning commands are:
5.6 DART 52
REWIND
ADVANCE
BACKSPACE
EOT
The complete documentation of these commands is in Appendix 5 of
this manual.
5.7 DO
The DO program allows automatic execution of an arbitrary sequence of
commands. By writing DO command files, you can make your own
sequences of program execution analogous to the RPG
compiler-loader-execution sequence. The DO command takes a file
specifier as argument. The text in the file is simply transferred
into your terminal's input buffer, as if you had typed it. Then the
DO program exits, and the monitor processes the commands from the
file. The DO program cannot be run by detached jobs. The amount of
text allowed in the DO file is limited by the capacity of your input
buffer.
DO does some conversion of certain characters in the file, to allow
things like CONTROL and META characters. The characters which are
processed specially are:
RETURN ignored
LINE ignored
↔ translated to RETURN (the monitor will supply a LINE also)
↓ translated to LINE
≠ translated to ALT
β translated to deferred CALL
VT adds CONTROL bit to the following character
FORM adds META bit to the following character
⊗ translated to ESC
⊗- translated to BREAK
| separates different DO functions (see below)
≡ quote the next character (do not process it specially)
? takes the next character (other than RETURN or LINE) as a
variable name. Suppose the character is A (i.e., ?A). If
this is the first occurrence of ?A in the file, DO types
"A= " and waits for you to type in a text string ending
with RETURN; the string is substituted for each occurrence
of ?A in the file.
To allow more than one DO function to be stored in the same file
(because small files are inefficient in using disk space), the
vertical bar (|) character can be used as a separator. The command
5.7 DO 53
DO DOFILE(3)
will DO the commands between the second and third | characters in the
file.
The DO command remembers its argument in an RPG file, so you can type
DO without an argument to repeat the same command file. Also, the DO
command is remembered as if it were a COMPILE-type RPG command, so
the RPG exit mode commands in the text editors will also repeat the
DO command. Thus, users of languages like LISP which are not
recognized by RPG can write DO files to run LISP and read in their
program.
5.8 ZERO
The ZERO command is used to initialize file directories on disk or
DECtape. The command takes a device name as argument; the device
must be DSK, DTAn, or UDP (user disk pack).
For DECtape, ZERO simply executes the UTPCLR UUO, which tells the
monitor to initialize the file directory for the DECtape unit you
specified. Make sure you don't get the wrong unit number and zero
someone else's DECtape!
If you specify device DSK, you must confirm (by typing Y) that you
want to delete all the files in your disk area. ZERO then attempts
to delete each file in your area. For each file, it types # if
successful, otherwise a message indicating the reason for the failure
(write protected, etc.).
The ZERO program is not used for new format (file structured) UDPs.
It can be used to change the password of an old format UDP, and also
allows the initialization on such a UDP of the file structure
formerly used by the COPY program, although this feature is now
obsolete. The UDPUFD command (see page 59) is used to set passwords
and create file directories on new format UDPs.
5.9 WHO
The WHO command (abbreviated W) runs the WHO program, which displays
system status information at your terminal. If you are at a display
terminal, the information is automatically updated as long as the
program continues to run. If you are at a Teletype, the information
5.9 WHO 54
is only typed once. The WHO command does not require that you be
logged in.
The first part of the WHO display is a list of the jobs on the
system, with various information about each job. This list is
divided into two sections, for jobs belonging to users and for system
phantom jobs. (More precisely, the second section contains jobs
which are detached and have the JLOG bit off in the job status word,
i.e., are not logged in.) Jobs attached to pseudo-teletypes are
listed under the controlling job, with the line for the controlled
job indented. The listing for each job has several parts:
JOB job number
QUEUE queue name, as in the WHO line, with possibly an extra
character meaning one of several states (if more than one
applies, the one listed first below is displayed):
- the job is now actually running
⊗ the job is locked in core
→ the job is an upper segment, next t be swapped in
↑ the job is next in line to be swapped out
↓ the job is next in line to be swapped in
* the job is swapped out
↔ the job is next in line to be moved in core
PPN the job's logged-in PPN
(This will be 100100 for not-logged-in WHOs, etc.)
LINE the job's terminal line number, or DET for detached jobs
JOBNAM the job name
SIZE the job's core image size in K (1024-word blocks)
TIME the job's total run time since login
PL percentage of CPU time spent on this job recently
SL service level reservation for this programmer
SEG job number of this job's upper segment
SW10 number of ticks between startups of job's PDP-10
spacewar module
SW6 number of ticks between startups of job's PDP-6
spacewar module
After the job display comes a similar display for upper segments,
containing the job number, job name, core size, and number of jobs
using the segment.
The next part of the WHO display is a summary of overall system
statistics. This includes the time since the system was last
restarted (UPTIME); short and long term time spent running the null
job (NULTIMES); short and long term time spent running the null job
when another job wanted to be run but wasn't in core (WASTED); total
user core image sizes in core and swapped out (CORE); the largest
contiguous free block of core, the total available user core not used
by locked-in jobs, and the total available user core (USABLE); the
5.9 WHO 55
number of jobs in RUNQ and TQ and their combined core image size
(RUNNING JOBS); and the total service level reservation for logged-in
users (TOTAL SLEVEL).
The final section of the WHO display is a list of all I/O devices in
use by programs or assigned by jobs. For each such use of a device
(at most one per device except for DSK), a line is displayed
containing the logical name, if any; the physical name; the character
"#" if the device was assigned by the ASSIGN command; the job number
using the device; if a particular file is open, the file name,
extension, and directory ppn (for disk files), the number of records
in the file, the record currently being read or written, and the
read/write status. This last will be W if the file is open for
output, R for input, or RA for read/alter mode, followed by E if the
end of file has been read. Note: if the file has been closed, there
may be no mode flag, and a large number like 1101 in the
current-record position. Record numbers are displayed in octal.
On display terminals, only a part of this display can fit on the
screen at any time. Single-character commands can be typed to WHO
which provide "scrolling" of the display as well as other functions.
The following commands are understood:
↓ scroll down 1/2 screen size
↑ scroll up 1/2 screen size
∞ run forever (otherwise WHO exits after nothing has been
typed in for two minutes)
R only display jobs which have recently been Running
(not in NULQ, STOP, IOWQ, or INTW)
M only display My jobs (login or alias programmer name must
agree with user's login or alias programmer name)
N restore Normal display (all jobs)
E Exit, leaving information displayed on the screen and with
the page printer set up to avoid erasing it
1-9 repeat argument for ↓ or ↑
Any other character will make WHO restore the page printer to normal
and exit.
From a non-display terminal only, the command WHO/Q will type only
the PPN and TTY for each job which is not detached. ARPA network
users are listed separately. This is intended for Quick typeout.
5.10 FIND
The FIND command is used to locate information in a file by searching
5.10 FIND 56
for a keyword and typing out the "paragraph" in the file containing
the key. The main use of this program is to look people up in the AI
Lab telephone directory. FIND may be run without logging in first.
The syntax of the FIND command has the following form (brackets
denote optional things):
FIND [EXACTLY] key [ [IN] [file]]
If file=PHONE or is omitted entirely, the AI Lab telephone directory
is read. Otherwise, the specified file is read.
If a key contains any spaces or tabs, it must be separated from the
file name (if present) with the word IN, or delimited by " characters
or the quote pair ` ... '. A ` or ' character may appear in the
former, and a " may appear in the latter. If the number of spaces
and tabs in the key is significant (in EXACTLY mode), the quoted form
must be used. See the examples.
The file is logically divided into paragraphs. A paragraph consists
of twenty or fewer consecutive non-blank lines on one page. FIND
searches the file for paragraphs that contain the key. Each
paragraph containing the key is a hit and is typed out. Also, the
hits are counted and the count is printed at the end.
The EXACTLY qualification causes FIND to search for an exact match.
Otherwise it performs a template match. A template match recognizes
two special symbols in the key: space (one or more consecutive
spaces) and ellipsis (three or more consecutive dots). A space in
the key matches zero or more spaces, tabs, and carriage returns in
the paragraph. An ellipsis in the key matches zero or more arbitrary
characters in the paragraph. Furthermore, in a template match, upper
and lower case letters are equated. The EXACTLY search is somewhat
quicker.
Examples:
FIND john...lathrop<cr>
*McCarthy, John (Prof. John) 208 P[MTC*,JMC] 2 800
* 846 Lathrop Dr., Stanford, (9) 321-7580
1 HIT ON KEY = john...lathrop
FIND BRIAN HARVEY
will look up "BRIAN HARVEY" in the phone directory unless you
have a file named HARVEY, in which case it looks up "BRIAN"
in HARVEY.
FIND BRIAN K. HARVEY
5.10 FIND 57
always looks up "BRIAN K. HARVEY" in the phone directory.
FIND `BRIAN K.' HARVEY
or
FIND BRIAN K. IN HARVEY
looks up "BRIAN K." in HARVEY.
FIND BRIAN IN
looks up "BRIAN IN" in the phone directory unless you have a
file named IN, in which case it looks up "BRIAN" in IN.
5.11 Other System Information Programs
This section describes other commands which run information programs.
All of them are allowed to be run without logging in.
The WHERE command types out information similar to WHO for jobs
belonging to a particular user. It takes a PPN or programmer name as
argument, and for each job whose login or alias PPN matches the
argument types out the job number, PPN, job name, core size, queue,
total run time, actual time when the job was last run, terminal, and
alias if any. (The terminal is listed by type and unit number, e.g.,
TTY5, III23, DD56, PTY121. Note that these are not actual physical
device names recognized by the system, except for TTYn.)
If you are logged in and run WHERE, you can give the REENTER command
and type in a job name. WHERE will then list all jobs with that job
name.
The FINGER command also lists jobs belonging to a particular
programmer, but provides different information: the job number and
job name, the programmer name, the real name of that programmer if
known to the system, the number of minutes since the job was last
run, the terminal number (and type, as in WHERE), and the actual
location of the terminal (room number, if in the lab, and whose
office it is). FINGER with no arguments displays all jobs which are
logged in. If the programmer specified as the argument to FINGER is
not logged in, the program types the date and time of his last
logout. Also, if he has created a plan file (with the PLAN command,
Appendix 4) it is typed. FINGER will accept human being names as
argument instead of programmer names, if desired.
The HELP command provides information about system programs and
facilities. It takes as its argument the name of some program or
concept, and provides some short description of that facility, if
such a description exists. The data for HELP comes from the [3,2]
5.11 Other System Information Programs 58
directory; this data consists mostly of short text files which are
typed by HELP, but may also include programs or monitor commands
which HELP will run for you. If no HELP is available, but there is a
longer document available in one of the standard documentation file
directories, HELP will so inform you. If you type HELP with no
argument, the program will list the topics on which HELP is
available. (Some of the HELPers which run programs rather than just
typing text at you require that you be logged in. HELP LOGIN is
cleverly not among those.)
The SYSTAT command runs the WHO program (see Section 5.9). The old
SYSTAT program is no longer supported on this system, but the command
name was retained for compatibility with other systems.
5.12 Miscellaneous System Programs
The commands in this section run miscellaneous system programs.
Except as noted below, they require that you be logged in.
RSL runs the RSL program, which is used to reserve service level
(i.e., better service). The command takes no arguments. The meaning
of service level and the use of RSL are described in Appendix 6.
The LISP command runs the LISP interpreter. It takes no arguments.
Note: when the system wizards need a command table slot to patch in a
new command, LISP is the first to go. Therefore, it may not always
exist. R LISP has the same effect and always works.
The FIXIMLAC command is used to initialize IMLAC terminals. (These
are terminals which are treated as Teletypes by the monitor, but are
actually small computers with display screens.) With any luck, you
will never see an IMLAC. Just in case, the command is explained in
Appendix 7. This command may be given when not logged in.
The XEROX command runs the XEROX program, which does file formatting
to produce pretty documents. It has nothing to do with the Xerox
Graphics Printer. XEROX has been largely replaced by PUB, a more
versatile formatter. The XEROX manual is the file XEROX.LES[UP,DOC].
The TELNET and TN commands (TN is used to abbreviate TELNET) run the
T program, for talking to another computer on the ARPA network. The
site name of the computer you want to use is the argument.
The FTP command takes an ARPA site name like TELNET, but runs the FTP
program to carry out the File Transfer Protocol for copying files
between computers.
5.12 Miscellaneous System Programs 59
Further details on T, FTP, and the ARPA net in general is contained
in Appendix 8 of this manual.
It is possible to establish TELNET-like connections to remote
computers by using dial-up connections via the dataphones normally
used for incoming dial-up lines. Such dataphones are presently
associated with TTY10 and TTY11; the dataphone on TTY11 includes an
automatic dialing circuit. The DIAL command will establish an
outgoing dataphone connection and thereafter behave like a TELNET.
The dial command takes as its argument either the device name of a
TTY, in which case you must dial the number you want manually on the
associated dataphone, or a telephone number in the form
{(ddd)}ddd{-}dddd
where d represents a digit and braces enclose optional characters.
In the latter case, the telephone number is dialed automatically on
TTY11's dataphone.
The NS command runs the News Service program, which allows access to
news stories which have been received from the Associated Press and
New York Times news wires. The HOT command runs the HOT program,
which types AP or NYT stories as they come in. These commands are
restricted to local users at the request of the Associated Press.
Full documentation on the news service is contained in the file
NS.ME[S,DOC].
The UDPUFD command runs the UDPUFD program, which is used to create
or delete user file directories on file-structured user disk packs.
The command format is UDPUFD PRJ,PRG (you must first ASSIGN the UDP).
To create a new directory, you must know the pack password; to change
or delete a directory you must know its password. You can change the
directory's password or file protection codes with UDPUFD as you can
for the main file disk with LOGIN (see Section 5.1). You can delete
a directory only if it is empty. This is a privileged program, and
the command is restricted to local users (as is the UDP itself).
The DRD command (not related to the Department of Redundancy
Department) runs the DIRED program, for displaying and manipulating
file directories at a Stanford display terminal. See the file
DIRED.SGK[UP,DOC] for instructions.
The PARRY command runs PARRY, the paranoid model. It may be used
without being logged in.
6. Privileged Commands 60
SECTION 6
PRIVILEGED COMMANDS
Certain command functions can only be used by privileged users.
(There are several privileges which may be associated with a PPN.)
Most privileged functions are carried out by programs and are
documented with those programs, but a few monitor commands themselves
take on special meanings when used in a privileged way. Most users
do not require any privileges; if you think you need to be assigned
any, see a system programmer, who will disagree.
The DETACH command, if given with a device name argument by a user
with the DEV privilege, makes the specified device unavailable to
users. This is intended to be used for hardware maintenance. The
ATTACH command with device name argument, also privileged, assigns a
detached device to the job giving the command; it becomes generally
available when the job deassigns it. These commands also accept
pseudo-device names of the form DDn, to make Data Disc channel n
unavailable.
The KILL command can be used to kill any job by a user with the KIL
privilege.
The TALK command is always successful, even to a terminal in user
mode, if given by a user with the TLK privilege.
Privileges can be enabled or disabled at any time. That is, for each
job, the monitor remembers the privileges to which the job is
entitled as well as the ones which are presently active. All
privileges to which you are entitled are normally activated when you
log in, but you may choose to disable any or all for safety reasons.
The ENABLE and DISABLE commands, with no arguments, turn on or off
all privileges to which you are entitled. These commands may also be
used with a privilege name as argument, to enable or disable specific
privileges. If you have the PRI privilege, you can enable specific
privileges to which you are not entitled, except that privileges
which are intended only for specific programs (XGP font compiler,
service level monitor) cannot be enabled by any user.
Also, a few system programs intended for general use require special
privileges. Such programs are run by special commands (not R or
RUN), and any attempt to modify your core image while running such a
program will disable the temporary privileges involved.
The EDDT command can be given only from the PDP-10 console Teletype.
6. Privileged Commands 61
It stops timesharing and starts Executive DDT to allow debugging of
the monitor.
Appendix 1 RPG 62
APPENDIX 1
RPG
RPG, the Rapid Program Generator, is a program which interprets
certain monitor commands for editing, compiling, and loading
programs. It simplifies these tasks by expanding concise user
commands into the different forms used by editors, language
processors, and the LOADER. Without user intervention, RPG will run
the correct language processors to translate the user's files. It
will run the LOADER to create an executable core image containing the
user's program. The monitor provides several commands that run RPG.
This appendix is excerpted from the RPG manual, SAILON 51.1, on the
disk as RPG.REG[S,DOC]. It does not include the section on the
internal workings of RPG.
RPG knows about certain standard processors. These are the editors:
TV, SOS, and TECO; the compilers: SAIL, FAIL, F4 (FORTRAN), MACRO,
OSAIL (Old SAIL), NSAIL (New SAIL), and PUB (Document Compiler); the
debuggers: RAID and DDT; and the LOADER.
The E editor includes within it the RPG functions, so its "RPG"
commands run E directly rather than via the RPG program.
Nevertheless, the E commands are included here because they are
operationally similar.
The RPG commands are divided into three classes, EDIT, COMPILE, and
CREF.
EDIT-Class Commands
There are eight EDIT-class commands, two for each of the four
commonly used editors:
Command Name
Program Create File Edit File
SOS CREATE EDIT
E CETV ETV
TV CTV TV
TECO MAKE TECO
CREATE, CTV and MAKE
Appendix 1 RPG 63
These commands take a file name as the argument. RPG will call the
editor and tell it to initialize the file of that name. For CREATE,
SOS is started in line insertion mode. The TV editor will initialize
the file and allow the insertion of text on page 2. TECO (the MAKE
command) will be initialized to write on the specified file.
EDIT, TV and TECO
These commands take a file name (with optional project-programmer
name) as the argument. RPG remembers the name of the last file that
was edited (except that LOGOUT makes RPG forget). If an EDIT-class
command is given without an argument, RPG will use the argument that
it remembered.
If no extension is specified in the argument and no file with the
given name and blank extension can be found, then the user's
directory is searched for any file with the given name and one of
several standard extensions. The standard extensions are searched in
the order: NSA, OSA, SAI, FAI, MAC, F4, LST, WRU, PUB, and CMD.
If a user specifies a disk area other than his own current (logged in
or aliased) area, then the edited file will be put on his disk area
and the source (from the other area) will not be changed.
The editors have a read-only mode in which files may be examined by
using editor commands, but not changed. To get read-only mode type
/R after the file name in the edit command (e.g., TV M.SAI/R).
Read-only mode in SOS prohibits any commands that would change the
file. In the display editors, the mode may be changed from read-only
to read-write at any time. In TV, there is a no-directory mode,
specified by the switch /N.
CETV and ETV
These are the create and edit commands for the E editor. They do not
run the RPG program; instead, E itself simulates the RPG functions.
There are several differences between these and the other editor
commands:
1. E saves its edit commands not on the disk, but in a TMPCOR file,
i.e., a simulated file kept in core by the monitor until the job is
logged out. The LOGOUT program copies these files to the disk if you
use the RPGSAV option.
2. The command can include /nP and /nL switches for page and line
numbers as well as /R and /N. E saves its position in the file when
it exits, so a later ETV command with no argument will continue the
edit from the same point in the file.
Appendix 1 RPG 64
3. E allows you to edit a file in another dsk area by including the
PPN in the command, rather than copying the file to your own area as
RPG does for the other editors.
READ
The READ command starts E in a special mode, called book mode, used
to read long files over an extended time period. In this mode, E
does several things differently from the normal editing procedure:
1. If there is a file with the name in the READ command, extension
BKP, and PPN matching that given in the command, your ALIAS PPN, or
your login PPN (tried in that order), it is used as an RPG file to
determine where to start editing the specified file. This "bookmark"
file is not deleted by LOGOUT, so you can continue reading at a later
session. The file, if found, is updated when you exit from E; if
there was no BKP file, one is created on your (alias) area when you
exit.
2. A READ command with no argument uses RPG (TMPCOR) files as ETV
does, but the filename used is different, so you can alternate ETV
and READ commands for different files with no confusion.
3. E does not allow you to modify the file when using book mode.
COMPILE-Class Commands
The COMPILE-class commands are an abbreviation for a series of
commands to compilers (and other language processors) and the LOADER.
Here is a brief summary of the commands:
REL file Core Image Debugger Execution
COMPILE yes
LOAD yes yes
PREPARE yes yes yes
EXECUTE yes yes starts the user program
TRY yes yes yes starts the user program
DEBUG yes yes yes starts the debugger
PUB document compilation
The COMPILE-class commands, like the EDIT-class commands, remember
their argument list. If the user does not supply explicit arguments,
RPG uses the same arguments that were used in the previous
COMPILE-class command. Arguments are remembered in the disk files
Appendix 1 RPG 65
QQSVCM.RPG (COMPILE-class) and QQSVED.RPG (EDIT-class), which are
usually deleted by the LOGOUT program. RPG actually remembers the
last COMPILE-class command that had explicit arguments; both the
command and the arguments are remembered. This is useful because all
the editors allow an exit-and-go command (in SOS, the G command; in
TV and E, the CONTROL-X G command; in TECO, the EG command). The
exit-and-go feature runs RPG in a special way which makes RPG
re-execute the command that it remembered.
PUB, the Document Compiler, is a special case: it does not translate
computer programs into REL files, but documents into DOC files. The
PUB command is used to compile a PUB document; the other
COMPILE-class commands do not recognize PUB. The PUB command is
remembered in a QQSVCM.RPG file, like the other COMPILE-class
commands.
COMPILE
The argument should be one or more file descriptors, separated by
commas. RPG will cause the appropriate translator to be used for
each of the files. The translator that is used is determined by the
the extension of each file. The standard extensions and translators
are:
Extension Translator
SAI SAIL
F4 FORTRAN
FAI FAIL
blank FAIL
MAC MACRO
OSA OSAIL (Old SAIL)
NSA NSAIL (New SAIL)
The decision about whether to compile is made for each file by
comparing the source file date (and time) with the corresponding REL
file date. If there is no REL file, or if the text file has been
edited since the creation of the REL file, then the source file will
be translated again. If the REL file is up to date, no compilation
is done. For example, if the files FOO.FAI, GARP.FAI, and BAZ.F4 are
to be compiled, the command: COMPILE FOO,GARP,BAZ would be suitable.
Only those files that have changed since the creation of their
corresponding REL files will be compiled.
Note that the COMPILE command does not produce a core image. To get
an executable core image one of the other COMPILE-class commands must
be used.
Appendix 1 RPG 66
LOAD
LOAD does a COMPILE if necessary and then starts the LOADER. The
LOADER takes the REL files that were generated by the compilers and
combines them into an executable core image. When the LOADER is
done, it exits to the monitor. This command makes a core image but
does not start it. If any SAIL program is loaded, the LOADER will be
instructed to request the current SAIL segment.
PREPARE
PREPARE is like LOAD, but a debugger (RAID or DDT) is loaded with the
user's program.
EXECUTE
This is like LOAD, but instead of exiting, the LOADER starts the
program it loaded at its specified starting address.
TRY
TRY is like EXECUTE, but it loads a debugger (RAID at displays,
otherwise DDT) with the user program(s). Execution starts at the
program's starting address.
DEBUG
DEBUG is like TRY except that rather than starting the user's program
it starts the debugger (RAID or DDT). The user may give commands to
the debugger to start his program, to plant breakpoints, etc.
Appendix 1 RPG 67
Switches and Project-Programmer Names
Switches are allowed in COMPILE-class commands by including a slash
(/) and the switch name, e.g., /LIST. Switches allow the user to
select options. In general, a switch placed before a file name is
sticky, i.e., it applies to all the terms that follow. Switches
placed after a file name are not sticky; they apply only to the
preceding term.
Many switches have inverse switches that undo the effect of the
switch. For example, /NOLIST is the inverse of /LIST. The inverse
setting is the default for all switches.
A project-programmer name (PPN) may be included with each file name
in the command. The PPN specifies the disk area from which the file
is to be read. The PPN, enclosed in square brackets ([ and ]),
usually follows a file name; in this case the PPN applies only to the
preceding term. If a PPN appears before a file name, then that PPN
is sticky for the rest of the command until another sticky PPN is
seen.
A name followed by a colon (:) is a device name (which is sticky).
Switch Function Summary
/COMPILE Force re-compilation without checking the dates
of REL files
/CREF Request a cross-reference listing
/DUMP Force the LOADER to make a DMP file of the core
image
/FAIL Use FAIL for this term
/FORTRAN Use F4 (FORTRAN) for this term
/FORWARD Prevent RPG from looking for this file to decide
if the REL file is up to date
/LIBRARY Force the LOADER to search this term as a library
/LIST Request a listing file
/MACRO Use MACRO to translate this term
/MAP Request a LOADER map of global symbols
/NODUMP Force re-loading without checking the dates of
DMP files
/NOLOAD Prevent a loading request for this term
/NOSAISEG Load SAIL programs with the SAIL library instead
of the SAIL segment
/NONSTANDARD Specify a nonstandard processor
/NSAIL Use NSAIL (New SAIL) to translate this term
Appendix 1 RPG 68
/OSAIL Use OSAIL (Old SAIL - 1971 version) to translate
this term
/REL Force loading from the REL file without
considering the source files
/SAIL Use SAIL to translate this term
Switch Names and Abbreviations
Switch name Abbreviation Inverse name Abbreviation
/COMPILE /COM /NOCOMPILE /NOC
/CREF /C /NOLIST /N
/DUMP /D
/FAIL /F
/FORTRAN /FORT
/FORWARD /FORW /NOTFORWARD /NOT
/LIBRARY /LIB /NOSEARCH /NOSE
/LIST /L /NOLIST /N
/MACRO /M
/MAP
/NODUMP /NOD
/NOLOAD /NOLO /LOAD /LO
/NONSTANDARD /NON
/NOSAISEG /NOSA
/NSAIL /NSA
/OSAIL /OSA
/REL /R
/SAIL /S
Generation of REL Files
The simplest way to translate several programs is to create them with
file extensions which define the processor to be used; then give a
single COMPILE command with all these names separated by commas. (It
is usually a bad idea to have two programs in different languages
with the same file name, e.g., FOO.SAI and FOO.FAI.)
RPG does not require file extensions to be typed explicitly. For the
command COMPILE FOO, RPG will look for any file named FOO and check
its extension. If a file FOO is found that does have one of the
standard extensions, RPG will select the corresponding translator.
If a file does not have a standard extension, RPG can be told which
translator to use by giving that information in the command string.
For example, to translate the file SINE with the SAIL compiler use
the command: COMPILE SINE/SAIL. If there is a list of several file
Appendix 1 RPG 69
names, the processor name may be used after each file name, or before
the entire list. For example,
COMPILE FOO/SAIL,BAZ/SAIL
is the same as
COMPILE /SAIL FOO,BAZ
The command:
COMPILE /SAIL SINE,IOPACK/FAIL,TJ
would use SAIL on SINE and TJ, and would use FAIL on IOPACK. The
default processor is initially FAIL. Caution: if a file does have a
standard (non-null) extension, RPG cannot be convinced to use some
other processor.
Every time a switch like /FORTRAN appears in front of a file name, it
changes the normal mode. For example,
COMPILE /SAIL SINE,COSINE, /FORTRAN TANGNT,COSEC
would cause SINE and COSINE to be translated by SAIL, and TANGNT and
COSEC to be translated by FORTRAN.
The compilations that are requested will not take place if there
already exists a REL file whose creation date is more recent than all
of the files used in producing that REL file. If any source file is
edited, it will have its creation time and date updated so that it
will force re-compilation. A user may force re-compilation, if he
wishes, by including /COMPILE in the command line. That is,
COMPILE /COMPILE FOO
will compile the file FOO regardless of its creation date. Date
checking can be forced again by including /NOCOMPILE in the command
line. Including /REL will cause RPG to forget about looking for
source files at all and just proceed to generating a core image from
the existing REL files.
Concatenation of Source Files
It is often desirable to break up a program into two (or more)
separate files which have only one END statement at the end of the
last file. One reason for breaking up a program is because it is
Appendix 1 RPG 70
very long, and it would be inconvenient to keep and edit such a large
file. Another reason for separating a program is to allow a portion
of the program text to be shared. Several files can be processed
together as one big translation by separating their names with plus
signs (+) rather than with commas. For example,
COMPILE DATA+PROGRM
treats the files DATA and PROGRM as if they were one large file and
produces one relocatable binary file, PROGRM.REL. A maximum of 40
files may be combined in this way. RPG will not allow concatenation
of source files that specify inconsistent processors.
Normally, the REL file will have the name of the last file in the
command string; it can be given some other name by putting the
desired name and an equals sign (=) at the front of the argument
list, e.g.,
COMPILE FOO=SYMS+PROGRM+IOPACK
would do one translation as if SYMS, PROGRM, and IOPACK were one
large file and produce relocatable binary output on the file FOO.REL.
Occasionally, a header file must be assembled with several other
files, e.g.,
COMPILE ACUMS+SINE,ACUMS+COSINE,ACUMS+TANGNT
The brokets (< and >) feature allows this to be done more simply:
COMPILE ACUMS+<SINE,COSINE,TANGNT>
Producing Symbolic Listings
Assembly listings have the original code as it appears in the file
plus the octal values that the code represents with the relative
locations that the octal values go in. Assembly listings can be
generated by means of a /LIST or /CREF (cross-reference listing)
switch in the command. The /LIST switch will produce a file with the
same name as the REL file and extension LST. Such a file may be
spooled or typed. Note that COMPILE FOO/LIST will not compile
anything if a current FOO.REL exists. This is another instance where
the /COMPILE switch is useful. The /LIST may be used as a sticky
switch or it may be applied to particular terms. The inverse switch
is /NOLIST. (Processors other than the assemblers may also produce
listings.)
Appendix 1 RPG 71
If the /CREF switch appears, instead of /LIST, it generates an
expanded listing that includes a list of all the symbols
(identifiers) used in the program and the line numbers on which each
symbol appears. This is called a cross-reference listing. These
listing files cannot be printed directly. Instead, they must be
processed by the cross-reference lister program, CREF. This is done
by the CREF command (see page 76). Note: not all the processors can
produce a cross-reference listing. Consult the appropriate manual to
find out if a given processor is capable of generating one.
Command Files
COMPILE-class commands are sometimes too long to fit on one line, or
are too complex to be typed correctly every time. To solve this
problem, arguments can be read from a file. The text contained in
such a file is read by RPG as if it had been typed as the arguments
to a command.
The command file may contain any features available in a
COMPILE-class command. Also, if the command is too long to fit on
one line of the file, a semi-colon (;) placed at the end of a line
signifies that the argument list will continue on the next line of
the file.
To use a term as a command file write an at sign (@) before the
command file name, e.g., LOAD @SYS. The command file SYS might look
like the following file which is used to assemble the entire
operating system:
%S%B SYSTEM=OUTER(XLR)+JOBDAT+ALLDAT+IMPDDB;
+LOWCOR+PARSER+SYSINI+COMCSS+CLKSER+UUOCON+SCHEDU+CORE;
+DSKSER+DSKINT+DTCSER+MTCSER+XGPSER+FBPACK;
+IMPCLK+IMPREG+IMPUUO+IMPINT;
+LPTSER+PTPSER+PTRSER+ADCSER+ELFSER+VODSER;
+DPYSER+TTYSER+LINED+SPWSER+TVSER+ADSER+MAIL;
+PATCH+SYSMAK+DDT+ONCE
There are two things in this command file which have not yet been
explained, LOADER switches (see page 76) and translator switches
(see page 74).
Appendix 1 RPG 72
Generating Core Images and DMP Files
The commands EXECUTE, DEBUG, LOAD, PREPARE, and TRY each generate an
executable core image. Core images are made by translating source
files (as in the COMPILE command) and then running the LOADER, which
takes the REL files and produces a core image from them.
With DEBUG, PREPARE, and TRY, the LOADER is instructed to load a copy
of RAID (or DDT if the user is at a Teletype) and the program symbol
table with the core image.
If /MAP is included in the command string, the absolute values of all
the global symbols are listed in a legible way on the file MAP.MAP.
A disk dump of the core image can be made by including /DUMP in the
command string. The dump file will have the same name as the first
REL file and extension DMP. The DMP file can be given some other
name by putting the desired name and a left arrow (←) in the command
string. For example, the command
TRY DUMP←SINE,COSINE/DUMP
translates the programs SINE and COSINE, producing SINE.REL and
COSINE.REL. The LOADER is run. Because the TRY command requests a
debugger, RAID.REL (or DDT.REL) is loaded from the system area.
SINE.REL and COSINE.REL are loaded next. Then the LOADER makes a
dump copy of the core image in the file DUMP.DMP and starts the
program.
If there already exists a DMP file of the right name and if it has a
creation date more recent than those of the source files, no loading
will be done. Instead, the dump copy itself will be called in.
Reloading may be forced by the /NODUMP switch in the command line.
Both an equals sign and a left arrow may be included in a command
string. For example:
COMMAND REL DMP
TRY SINE+COS/DUMP COS.REL COS.DMP
TRY DUMP←SINE+COS/DUMP COS.REL DUMP.DMP
TRY DUMP=SINE+COS/DUMP DUMP.REL DUMP.DMP
TRY FOO←DUMP=SINE+COS/DUMP DUMP.REL FOO.DMP
Appendix 1 RPG 73
Library Searches
Several REL files may be combined into a library. A library is a
special REL file from which routines may be independently selected.
Library files are made by combining REL files together using the
FUDGE2 program (which is described in DEC documentation). For
example, sine, cosine, and tangent routines might be combined into a
trig library, TRIG.REL. Then, if a particular program used just the
sine routine, instead of loading the entire trig package it would be
able to select only the sine routine. The LOADER will search library
files and load only the programs that are needed. The /LIBRARY
switch after the name of a library file tells RPG to request this
LOADER feature. The /LIBRARY switch may also be used as a sticky
switch; its inverse is /NOSEARCH. Suppose there is a program called
NLT which uses the sine routine that was included in TRIG.REL. Then
the command LOAD NLT,TRIG/LIBRARY will cause NLT to be loaded and
TRIG to be searched. The LOADER notices that NLT requires SINE.REL
and searches TRIG.REL for it. Suppose another program, XLT, requires
routines from two library files, TRIG.REL and IOPACK.REL, and must be
loaded with another program LT. Then any one of the following
commands could do this:
LOAD XLT,LT,/LIBRARY TRIG,IOPACK
LOAD /LIBRARY XLT/NOSEARCH,LT/NOSEARCH,TRIG,IOPACK
LOAD XLT,LT,TRIG/LIBRARY,IOPACK/LIBRARY
Programs which use library files must be placed before the library
file names in the command. This is because the LOADER cannot know
what routines to extract from each library until it has loaded the
programs that require library routines.
Nonstandard Processor Features
Processors other than SAIL, FAIL, FORTRAN, PUB, or MACRO may be
specified by using the non-standard processor feature. The switch
/NONSTANDARD DEV:NAME specifies a nonstandard processor. In this
switch, DEV (assumed to be DSK, if absent) is the device name on
which to find NAME.DMP, the core image file of the nonstandard
processor. Once the /NONSTANDARD switch is used, RPG will recognize
the extension NAM (i.e., the first three letters of the processor
name) and the switch /NAME (the processor name) in the command line.
A project-programmer name may be used in specifying the non-standard
processor.
For example, for a user to translate the program SINE using a
Appendix 1 RPG 74
processor named PROC on his disk area, he could use the command:
COMPILE SINE/NONSTANDARD PROC.
When a standard processor is used, it is known that it will take a
text source file and produce a binary REL file, and possibly a text
LST file. With nonstandard processors there is no such guarantee. A
nonstandard processor may process a text file into a new text file
which becomes input to a standard processor. It is possible to
specify all these functions in a single COMPILE-class command.
If a nonstandard processor generates a text file instead of a REL
file, loading must be inhibited. The /NOLOAD switch accomplishes
this. The /NOLOAD switch must be used for each term that does not
produce a REL file (except in the COMPILE command, which does no
loading anyway). The inverse switch is /LOAD.
Suppose the preprocessor, NSP, translates the file BAZ into a file
FOO which is a FAIL program. FOO must be translated when NSP is
done. Also, MAIN and SINE must be translated and loaded with FOO.
The command:
LOAD FOO=BAZ/NONSTANDARD NSP/NOLOAD,MAIN,SINE,FOO/FORWARD
will do all of this. The /FORWARD switch is necessary because the
file FOO does not exist at the time the command is given. Including
the /FORWARD switch prevents RPG from looking for FOO; RPG will
assume that FOO magically appears before FAIL is called. The inverse
switch is /NOTFORWARD.
The processor DO (see Section 5.7) is another example of a
nonstandard processor. The DO program writes QQSVCM.RPG to force the
exit-and-go command from the editors to run DO again.
Translator Switches
Switch names enclosed in parentheses "(" and ")" are passed directly
to the translator. The documentation for each of the translators
explains what switches are available. The switches passed in this
way appear on the source file specification. Sometimes it is
necessary to put switches on the binary or listing term. For this
purpose, there are two other switch constructions.
The construction (#1,#2), where #1 and #2 are any switch strings,
passes #1 to the binary term and #2 to the source term. The
construction (#1,#2,#3) passes #1 to the binary term, #2 to the
listing term, and #3 to the source term. For example,
Appendix 1 RPG 75
COMPILE/LIST FOO(AX,BY,CZ)
will pass the switch string "AX" to the binary term, "BY" to the
listing term, and "CZ" to the source term.
The PUB command will take PUB switches enclosed in parentheses and
pass them on to PUB.
Appendix 1 RPG 76
LOADER Switches
Switches to the LOADER may be specified in a COMPILE-class command.
A percent sign (%) followed by a letter (or a number and a letter) in
the command string of one of the LOAD, TRY, EXECUTE, PREPARE, or
DEBUG commands directly specifies that switch to the LOADER. The
following are the legal LOADER switches:
%A Causes a listing of all global symbols to be printed
%B BLT symbols down when done loading
%C Chain beginning with Common
%D Load DDT
%E Start up program when done loading
%F Enter library search mode; search all default libraries
%G Finish loading, make final links, and exit
%H Load and start RAID
%I Ignore starting address of this program
%J Use starting address of this program
%nK Adjust to n K of core when done loading
%L Search this file as a library
%M Print storage map
%N Leave library search mode
%nO Set program origin to n, absolute
%P Inhibit automatic library search for undefined globals
%Q Allow automatic library search
%R Chain beginning with resident module
%S Load symbol table also
%T Load and start DDT
%U Print current list of undefined globals
%V Load RAID
%W Load without symbols
%X Do not list all globals
%Y Load SAILOW for 2 segment SAIL programs
%Z Restart LOADER
%< Load high segment
For a full description of what these switches mean, consult the DEC
LOADER documentation. The LOADER has been modified for Stanford, so
the DEC documentation does not accurately reflect the state of the
software. Consult a wizard if necessary.
CREF Command
This command causes a cross-reference listing to be made on the line
printer. All the files made from COMPILE-class commands which used
Appendix 1 RPG 77
the /CREF switch are listed. (LOGOUT makes RPG forget which listing
files to process.) The CREF command activates RPG which in turn
activates the CREF program in a special way. The CREF program when
activated in this way reads a file that RPG wrote which contains the
names of the files to process.
Error Messages
Obvious errors
COMMAND ERROR
TOO MANY SWITCHES
UNRECOGNIZABLE SWITCH
DEVICE NOT AVAILABLE
TOO MANY NON-STANDARD PROCESSORS
Subtle errors
UFD HASHING ERROR INCITED BY DCS
Probably you have too many files on one disk area.
TOO MANY NAMES
Your command included too many file names or non-standard
processor names.
PROCESSOR CONFLICT
A + construction specified files with different extensions,
e.g., COMPILE FOO.SAI+BAZ.FAI.
NESTING TOO DEEP
Too many levels of command files.
NO SUCH FILE
Some LOOKUP failed. A file named in the command does not
exist.
Horrible errors (A wizard should be consulted)
DISK NOT AVAILABLE
INPUT ERROR READING UFD
INPUT ERROR
NOT ENOUGH CORE
OUTPUT ERROR
Some file could not be written correctly. Possibly a file is
write protected. Otherwise you may need help.
Appendix 1 RPG 78
UFD LOOKUP FAILURE
You are aliased to a non-existent disk area. Otherwise, you
need a wizard.
Appendix 2 COPY 79
APPENDIX 2
COPY
This appendix is taken from COPY.RPH[S,DOC], SAILON 61.1, the COPY
manual. The manual first describes the basic COPY command with all
possible options, and then lists the other monitor commands which run
COPY and describes their special functions.
Syntax
In this section the following rules are observed. Anything in curly
brackets is optional. Anything enclosed in brokets (e.g., <.......>)
has a syntactic definition of its own and is described elsewhere.
Upper and lower case letters are legal anywhere. A break character
is something which is not a letter, a number, or a "*". This will
become important when you try to figure out some of the error
messages. In this manual the term sticky means that the sticky item
is applicable until changed or until the end of the current command.
The basic syntax for all COPY commands is:
COPY {{<destination term>}{,<list term>}←}<source term>
"=" may be substituted for "←".
<destination term>::=<switch term>
<source term>::= <switch term>{,<source term>}
<switch term>::= {<switch list>space}<term>{<switch list>}
<list term>::= <term>
<term>::= {dev:}{filnam{.ext}}{[ppn]}
| {<switch list>}{dev:}{[ppn]}{<switch list>}
@<spec term>
| \<filehack selector>
| ∂{ <pn> | * }
<spec term>::= {<spec switch list> }{dev:}{filnam{.ext}}
{[ppn]}{<spec switch list>}
<switch list>::= {/<switch>}{(<page list>)}{<switch list>}
<spec switch list>::={/<switch>}{<spec switch list>}
<page list>::= <page term>{,<page list>}
<page term>::= N{:M}
Appendix 2 COPY 80
General Operation
COPY reads data from the logical file(s) indicated by the source
term, performs any operations requested by the switch term(s), and
writes the data on the logical file indicated by the destination
term. Any listing information goes to the list term.
Dev and p,pn are sticky in the source; that is, if they are absent,
the last one specified is used. The default device is DSK and the
default p,pn is blank (those of the current job).
A single * may be substituted for any of the following:
filnam
ext
p
pn
A * in the source term means "all." A * in the destination term means
"same as in source file being transferred."
If filnam.ext is absent in the destination term, *.* is assumed. If
the destination filnam.ext are specified (no *'s), all source files
will be concatenated into one big file with that name.
For example:
COPY DING←FOO,BAZ
would cause a file named DING to be created on your disk area
comprised of the files FOO and BAZ from your area. If filnam.* or
*.ext is used in the destination term, the source files will be
copied onto the destination one by one with the new filename or
extension. <destination term>← may be left out and DSK:*.*← will be
assumed. For source terms with directory devices you must specify
the filnam.ext.
If you try to write on top of a file which already exists, you will
be given the option of deleting it or not. If any of the source
files you have specified do not exist, you will be informed and given
the proper option.
If a string of source descriptors is specified, the string is
executed from left to right.
You cannot write a file in two different modes (e.g.
FIL1←TTY:,DSK:FIL2). However FIL1←TTY:,DSK:FIL2/ASCII is quite
acceptable (/ASCII causes the data mode to be 0). Data modes are
explained in the UUO Manual.
Appendix 2 COPY 81
The <spec term> construct causes the scanner to continue scanning in
the file specified by the term. The term must indicate a unique
file. When end of file occurs the scanner again reads from the
terminal. No spec terms may appear in the file. Switches preceding
the "@" are treated as sticky switches. Switches following the "@"
are treated as sticky switches only while reading from the indirect
file. In a sense the indirect file is a "program block." Upon
leaving the "block" all defaults are reset to those in force just
before the "@". A device name and p,pn may precede the "@", in which
case the defaults are changed to those, but no operation is done.
The device and p,pn used in the spec term do not affect the current
defaults.
The \<filehack selector> construct for a term is a special shorthand
feature to allow commonly referenced files which would normally
require a large amount of typing to be entered quickly. The following
is a list of legal filehack selectors and what they are short for
(<pn> stands for the current programmer name right adjusted):
Filehack
Selector File selected What for?
MAIL <pn>.MSG[2,2] User <pn>'s mail file
MSG <pn>.MSG[2,2] "
MAINT MAINT.TXT[2,2] 5 day computer maintenance forecast
NOTICE NOTICE.TXT[2,2] Public mail file
RPG *.RPG[*,<pn>] All of current user's RPG files
NAP <pn>.NAP[2,2] AP news notification file
OPTION OPTION.TXT[*,<pn>] All of current user's option files
DAY DAY.TXT[2,2] Daily birthday or holiday message
PLAN <pn>.PLN[2,2] Current user's plan file
The ∂{ <pn> | * } construct is another form of shorthand for
referencing MAIL files (see Appendix 4). If no argument follows the
∂ then the current user's mail file is indicated. If <pn> is used, it
means that user's mail file. And lastly, if * is used the file
NOTICE.TXT[2,2] is selected (this is the public mail file).
There is a page counter in COPY which monitors ASCII output for form
feeds. When a form feed is encountered, the counter is incremented.
If a page list is used in a term, N is taken as the starting page of
this output and M (or N if M is absent) as the ending page. Output
is only active when the counter is within the range of the page list
(e.g., LIST COPY(21) would list page 21 of the file COPY). When the
end of the first term is exhausted, control is transferred to the
next term, and so on until the right parenthesis is reached, at which
point output ceases. If more than one file is indicated, the page
list is re-scanned for each one. Page lists are never sticky. An
asterisk (*) may be used in a page list instead of the final page
Appendix 2 COPY 82
number, to denote the last page, e.g., LIST COPY(3:*) would list all
but the first two pages of the file COPY.
Switches will be described in a section of their own. See /LIST for
an explanation of "list term."
Logical device names may be used, but all switches apply to the
physical device. The following are legal physical devices for the
copy command:
DSK
UDP
DTAn
MTAn
TTYn
TTY
LPT
XGP
PTR
PTP
When the special character ↓ (↑A on Teletypes) appears, the scanner
will read the line character-by-character without interpretation
until the next ↓ (or ↑A). This is useful for allowing non-alphameric
characters to be included in filenames, e.g., editor or spooler
temporary files.
For numeric input there is always a default radix (either decimal or
octal). Sometimes, however, it is desirable to force one or the
other. A number preceded by a single quote is always interpreted in
octal. A number preceded by a double quote is always interpreted in
decimal.
Appendix 2 COPY 83
Device Peculiarities
Non-Directory Devices:
If the source device doesn't have a directory and the filename and/or
extension is specified by a *, then a generated filename and/or
extension is used. The generated filename starts out as AAAAAA and
the generated extension starts as COP. Either of these may be
changed by specifying a filnam.ext in the source term. If a star is
used, the old name is retained; otherwise it is replaced by the new
one. At the beginning of each term the filename is either changed to
that which was specified or incremented by one letter (i.e.
AAAAAZ.COP is followed by AAAABA.COP). The following example may
clear things up:
COPY DSK:*.*←MTA0:,,FOO.*,,*.BAZ
This would read 5 files from MTA0 and give them the following names:
AAAAAA.COP
AAAAAB.COP
FOO.COP
FOOA.COP
FOOB.BAZ
Disk:
If you attempt to write on an area which is protected by a password,
you will be asked the password. If you answer <cr> to the request
for a password COPY will assume that you don't know it and do the
appropriate thing. You may delete files belonging to other users
(please exercise extreme care). However, if you attempt to delete a
file on a user file directory whose programmer name is different from
the one you used when logging in, you will be asked if you are sure.
All normal file protection applies to deletions.
User Disk Pack:
COPY treats new format (file structured) UDPs like the main file
disk. The file-structure simulation which COPY provided for old
format UDPs is no longer available.
DECtapes:
DECtapes are assumed to be in PDP-6 format (which is the current
format our system uses). See the UUO Manual for an explanation of
DECtape formats. If the directory becomes full (more than 22 files),
you will be told which was the first file not transferred. If the
Appendix 2 COPY 84
DECtape becomes full, the file currently being written may be
incomplete. An attempt is made to detect this condition before the
transfer is initiated, but this is not always possible. The total
file capacity of a DECtape is about 71.4K words. In order to write
on a DECtape the OFF-WRITELOCK-WRITE switch must be in the WRITE
position. If not, you will be told to set it.
Magnetic tapes:
Mag tapes may be made to look like directory devices by use of the
/SAVE switch which is described later. All mag tape switches are
separate for input and output (see rules about switches in switch
section). This means that mag tape switches in the destination term
don't apply to the source terms.
Paper tape:
Paper tape I/O is done in binary non-checksummed mode unless
otherwise specified (see /ASCII). You should turn off the paper tape
reader when you are done. A paper tape with a jagged end may cause
spurious data to be read. It is best to tear it evenly at a fold.
Teletypes:
Since some terminals cannot reproduce the full Stanford character
set, COPY provides the standard SOS conversion for output of some
special characters on model 33 and model 35 Teletypes which are not
in full character set mode. See Appendix 13 for the SOS
representation.
On display terminals, COPY displays the number of the page being read
(if >2) if reading in mode 0, i.e., the number of form feeds seen +1.
Spooling pseudo-devices:
COPY recognizes two pseudo-device names, TPL: and PGX:, to allow
spooling of the output of some copy function to the LPT or XGP,
respectively. These device names may be used only in output terms,
and may not be used with file names. COPY creates a file on the
[SPL,SYS] directory containing the desired output, and enters a
spooling request for the appropriate device. The file is deleted
after spooling. For a standard COPY command, the effect is
essentially equivalent to the recommended SPOOL/RECOPY (see page
95); the main advantage of this capability is for direct spooling of
list terms, e.g.,
DIRECTORY TPL:←[*,SYS]
to spool a list of the [*,SYS] file directories. (Note: It is
Appendix 2 COPY 85
claimed that these pseudo-device names stand for The Pseudo Lpt and
Pseudo Graphic Xerox-machine respectively.)
Switches
The term sticky means "applies until the end of the line or until
changed temporarily or permanently by some means." Most switches
appearing in the destination term are carried over as sticky switches
in the source. Those switches which are separate for destination and
source terms are indicated by a star preceding the switch name.
Switches appearing in the source term are sticky only if they precede
the term with which they appear. Otherwise, they apply only to the
current term and must follow it. Only the first six characters of a
switch are significant. You are only required to use enough
characters to uniquely specify the switch.
The following switches are now available:
SWITCH ABBREV MEANING
ASCII A This forces transfers to be in ASCII.
Beware! This switch will cause SOS line
numbers to become part of the text.
ASK ASK This causes dev:filnam.ext[p,pn] to be
printed for each file under consideration
followed by a question mark. If you answer
"Y" the operation will proceed, if you
answer "G" the operation will proceed but
you will not be asked the for the rest of
the term, otherwise the file will be
skipped.
BINARY B This causes the data mode to be 13 and
forces word by word transfer of data.
BLOCKED BL This causes records to be ended on output
whenever they are ended on input.
CONVERT C This causes copy to treat the character
following a line feed and the first
character of a file as a FORTRAN control
character. Be careful, this happens on
output.
*DENSITY=n DE This sets the density in bpi to n where n
equals 800, 556, or 200. This switch is
ignored for devices other than mag tapes.
The system default density is 556.
*DSPOOL DS This switch, when used with destination or
list terms, causes the output file to be
Appendix 2 COPY 86
spooled with the /DELETE switch. Output
device must be disk. This switch is
illegal in source terms.
DUMP DU This causes each 36 bit word from the
input device to be converted to the ASCII
representation of the octal number it
represents and to then be sent to the
output device. The following format is
used. A "word number" is sent to the
output device which indicates which word
in the file is the first word in this row.
Then 8 data words are transferred. Then a
<cr><lf> is inserted. If desired, a "page
list" may be used for /DUMP; however, the
values are those of word addresses in the
file instead of pages.
*EVEN EV This sets mag tape transfers to even
parity.
EXTRA=n EX Whenever a line feed is seen n extra line
feeds are put out; n must be an unsigned
decimal integer. If n=0 line feeds are
converted to a 177 followed by a 21; this
inhibits form ejection at page boundaries
on the line printer.
EXTRA≡n EX (Note "≡" not "=".) This switch, used with
the XGP only, sets the inter-line spacing
to n raster units.
FAST F All the names specified by the source term
are listed (no size or other info). This
switch is therefore much faster than
/SEARCH.
FONT#n=file FON This switch is used when copying to the
XGP to select a font. Font number n
(default is 0) is taken from the specified
file. The file specification can include
any of filename, extension, and PPN; the
defaults are FIX25.FNT[XGP,SYS].
FOONLY FOO This switch is used to produce a file
directory listing meant to be read by
various programs rather than by a human
being. The switch name derives from the
fact that the switch was created for the
benefit of layout and drawing programs
used in the design of the late, lamented
SUPER FOONLY computer.
FULL FU This forces all the directory information
to be printed under /SEARCH even if no
list term was specified. This switch does
not automatically imply /SEARCH.
Appendix 2 COPY 87
GTOTAL G At the beginning of the execution of a
term the term is printed. At the end of
the term, a line is typed of the form
TOTAL= x.x n BLK pp%
where x.x is the size of the file in K and
tenths (if the file is smaller than 1K,
the size in words is typed instead), n is
the number of disk blocks allocated to the
file, and pp is the percent of the
allocated space which is actually used.
This switch implies /SEARCH.
HEADER H This causes a header to be put out at what
would be the top of each page on the line
printer. The header looks like this:
DATE TIME FILNAM.EXT P,PN PAGE N-M
The current date and time are used, N is
the logical page number (number of form
feeds seen plus one), and M is the
physical page of that logical page.
IGNI IGNI This causes input errors to be ignored (no
message).
IGNO IGNO This causes output errors to be ignored.
KILL K The input file is deleted after the
transfer is finished, even if the output
filename is the same as the input
filename. If the 200 bit in the file's
protection code is on, COPY asks before
deleting the file.
LIST L This causes the names of the files
transferred during that term to be listed.
If the input device is the disk the [p,pn]
are also listed. Non-directory devices
will obviously list nothing. The output
will go to the "list term". If the list
term is absent, the output will go to your
terminal.
*MLENGTH=nnnn M This allows the user to specify
nonstandard length records for mag tape
I/O, where nnnn is a 1 to 4 digit number
interpreted in octal which specifies the
number of data words per record.
NONUMBERS N This deletes line numbers from files that
have them. This forces an ASCII mode
transfer; in fact, /NONUMBERS can be used
on any ASCII transfer. Do not use this
Appendix 2 COPY 88
switch on anything but text files or you
will be sorry.
NOSPACES NOS This switch eliminates spaces at the end
of a line.
ODD OD This sets mag tape transfers to odd
parity. This mode is standard and is the
default option.
OPTIMIZE OP This forces COPY to treat the file as one
produced by SOS, and to pack it by
allowing lines to span a record break as
long as line numbers are not the last word
of a record. SOS will read an OPTIMIZEd
file, but will not write a record ending
with a partial line. A file which cannot
be read by SOS because of line numbers or
page marks at the ends of records will be
"fixed" by this switch.
PROTECTION=nnn P This causes the output file to have the
protection nnn, where n is a digit from 0
to 7. If no protection switch is
specified, the protection of the input
file is used (for non-disk input 000 is
used). All three n's must be present.
This switch applies only to disk output.
When concatenating files, the protection
applicable to the first file transferred
is used.
QUIET Q This switch prevents you from getting the
message "FILE ALREADY EXISTS...." If the
output file already exists, it is deleted
without a sound. Also, if this switch
appears with /SEARCH, then only the p,pn
and the size on that p,pn are printed.
This switch also prevents being asked for
confirmation when trying to delete a file
with the 200 bit on in its protection
code.
REFERENCE REF This switch is like /SEARCH below, but
includes in the directory listing an extra
column containing the date on which each
file was last read (referenced by LOOKUP).
RENAME REN A rename is done on the input file with
the output file information. /QUIET
applies when the output filnam.ext already
exists.
*SAVE SA If the output device is a mag tape, four
words of directory information are
written. If the input device is a mag
tape, four words of directory information
Appendix 2 COPY 89
are read and compared with the source name
specified. If they don't match, that file
is skipped and the next examined until a
match is found or the end of tape is
reached.
SEARCH SE This switch overrides all other switches.
It gives you more information than /LIST
and suppresses any transfers. Added to
the /LIST information, you get the size of
the file in 1K records (or in words if
less than 1K), the date and time it was
last written, the protection, and the
offset (see the UUO Manual). This is
preceded by a suitable heading. The whole
smear is preceded by the current date and
time. If the information does not exist,
it is not listed. If you try to SEARCH a
non-directory device, you will get a
strange answer. The output goes to the
same place as with /LIST, with the
following variation: If the "list term" is
omitted, the listing goes to your terminal
and the information and heading for disk
input will be truncated to FILNAM.EXT,
[P,PN], and SIZE. If /QUIET is used with
this switch and no list term was
specified, only the p,pn and the total
size of each disk area is printed. If the
input device was the disk and the file has
been dumped by DART, the date and tape ID
of the last dump are printed, followed by
">" if it was dumped twice or more.
*SPOOL SP This is the same as /DSPOOL except that
the /DELETE switch is not used in spooling
the file.
Appendix 2 COPY 90
TITLE T This causes a "title page" to be put out
in large block letters followed by a form
feed. The title is of this form:
FILNAM.EXT
P,PN
TIME
DATE
The date and time are when the file was
last written. For non-directory devices,
<device name>: is printed in place of
filnam.ext and p,pn.
Monitor Commands
The following is a list of the monitor commands which use COPY and
how they work. The syntax is the same as for COPY.
Appendix 2 COPY 91
COMMAND EFFECT
DELETE This deletes all the files specified by the source
term, and types the space reclaimed as with the
/GTOTAL switch. If the 200 bit is on in the file
protection key, you will be asked if you really want
to delete the file (/QUIET overrides this feature).
The destination term is interpreted as the list term.
The list term is therefore illegal.
DIRECTORYThis gives you all or part of the file information
for the source term(s) (or *.* if no source term is
used). If /L appears anywhere in the command string
the default list device will be set to the line
printer. The destination term is treated the same as
for DELETE.
LIST This sets the default output device to the line
printer and turns on the /HEADER switch.
PRINT This sets the default output device to the line
printer and turns on the /NONUMBERS and /TITLE
switches.
RENAME This allows you to change the filename, extension,
p,pn, and protection of a file. The format is
newname←oldname. Use /PROTECTION= to change
protection.
TRANSFER This copies files from one place to another and
deletes the source files.
TYPE This sets the default output device to your terminal.
XGPLIST This sets the default output device to the XGP.
Examples
COPY DTA4:←*.*
This would cause all the files on your disk area to be written on
DTA4.
COPY ←DTA4:*.*
This would cause all the files on DTA4 to be written on your disk
area.
COPY <filnam.ext>/NONUMBERS
This would delete sequence numbers (if any) from the file indicated.
COPY [2,RPH]←*.*[1,RPH]
Appendix 2 COPY 92
This would cause all the files on 1,RPH to be copied onto 2,RPH no
matter who you are logged in under (subject to file protection
failure).
TYPE <filnam.ext>
This would cause the specified file to be listed on the terminal you
are logged in on.
LIST <filnam.ext>(2)/NONUMBERS
This would cause page 2 of the specified file to be listed on the
line printer with headers and without line numbers.
DIR LPT:←*.RPG[*,*]
This would cause the filnam.ext, [p,pn], size, etc. for all files in
the world with the extension RPG to be listed on the line printer.
COPY FOO←TTY:,FOO/ASCII
This would allow you to add text at the beginning of the file FOO
(/ASCII is mandatory).
RENAME FOO/PROTECTION=077
This would change the protection of the file FOO to 077 without doing
a transfer.
PRINT FOO
This would cause the file called FOO to be listed on the line printer
without line numbers and with a title page.
DIR[*,RPH]/QUIET
This will tell RPH the size of each of his areas without printing the
filenames and other information.
COPY TEMP←↓$ED$09↓.TMP
This copies the file $ED$09.TMP into TEMP so that you can edit it.
(These names are created by SOS.)
DELETE @DEL
This would use the file DEL as a list of files to be deleted. This
method is very good for "cleaning" your area.
Appendix 3 SPOOL 93
APPENDIX 3
SPOOL
This description of the SPOOL commands is taken from the SPOOL
manual, SPOOL.REG[UP,DOC].
Spooling provides a method of producing line printer listings of
files without the usual disadvantage of tying up a user's job while
the listing is actually being done.
To use the spooler, a user must create commands for it. A command is
the name of a file to list, and control switches. Spooler commands
are created by the monitor commands SPOOL and XSPOOL.
As an example of spooling, the monitor command
SPOOL SPOOL.REG[UP,DOC]
will cause the LPT spooler to list the file SPOOL.REG[UP,DOC].
Spooled listings are preceded by a title page (except see /NOTITLE
below), used to make it easy to separate different listings. This
title includes the file identifier, the name of the requestor and his
project-programmer name, the current date and time, and the date and
time when the file was last written. Programmer names are read from
the file FACT.TXT[SPL,SYS]. Project names (of which there are few)
are read from the file XFACT.TXT[SPL,SYS].
In the discussion below, "SPOOL" is used to mean either the command
SPOOL or the command XSPOOL, except as noted. SPOOL makes requests
for the LPT spooler; XSPOOL makes requests for the XGP spooler.
To have the spooler make a listing the user must tell the spooler
what file(s) to print. This easiest way to tell the spooler what to
do is by the monitor command SPOOL. This command consists of the word
SPOOL followed by the name(s) of the file(s) to be listed. File
names are separated by commas. Each file name may be followed by
switches, explained below. The program SPOOL will send commands to
the spooler.
Files to be spooled are specified in the conventional way, by file
name, extension, and optionally project-programmer name.
Asterisk, *, may be used to allow matching of any file name,
extension, project name, or programmer name. (RPG, DMP, and REL
files will not be matched by * in the extension).
Appendix 3 SPOOL 94
Switches are allowed either preceding or following the file name.
Switches that precede the name are sticky and will be applied to
subsequent names. A switch consists of a slash, the switch name, and
sometimes, a parameter. For example, /REPEAT=5.
The following switches are available. Note that most switches occur
in two senses (e.g., delete and nodelete). This allows an explicit
switch in some term to override a sticky switch.
Appendix 3 SPOOL 95
Switch Action
DELETE DELETE this file after printing. The file protection
NODELETE of this file must be low enough so that the spooler
can delete it. The file must belong to the requestor
(alias not allowed).
NONUMBER Omit SOS line numbers from the listing. "N" is an
NUMBER accepted abbreviation for NONUMBER.
FORTRAN The first character of each line is interpreted as a
NOFORTRAN FORTRAN carriage control character.
LPT100 The spooler will open the LPT in mode 100, instead of
LPT0 the usual mode 0. This changes some character codes.
HEADING Print a page heading at the top of each page. "H" is
NOHEADING accepted as HEADING. HEADING is the default for all
files, except:
LST or DOC extensions,
any file from any area with programmer = DOC.
The heading includes date, time, filename, and page
numbers.
TITLE Precede the listing with a title page. TITLE is the
NOTITLE default for all files.
NARROW Center the title page to fit an 8.5 inch wide page.
NONARROW
RECOPY Copy the file to [SPL,SYS] and list the copy. This
NOCOPY allows the file to be edited while the listing is in
progress.
REPEAT=n Make n copies of the listing. (REPEAT is NOT sticky,
and is not allowed in XSPOOL.)
EXTRA=n Insert n extra line feeds in the listing after every
line feed in the file. (EXTRA is NOT sticky).
DUMP Octal listing. Data will be printed as octal full
NODUMP words. (OCTAL is an equivalent switch.)
NOFF Each line feed in the file is translated to '177&'21
FF which causes single spacing with no form-feed between
pages.
NOWARN Suppress "spooling done" typeout after listing.
WARN
ASK Before making the spool command, SPOOL will type the
file name and wait for the user to answer with "Y" to
spool the file. (This is useful with *.* terms).
HOLD=hhmm The listing will be held in the queue until the time
specified by hh hours, mm minutes. (24 - hour time is
assumed.) If hhmm is prior to the current time, hhmm
tomorrow is assumed.
MODE=n Open the file in mode n (n is octal).
File specifications may be read from an auxiliary file by including
in the command line the name of the auxiliary file preceded by @.
This file may include file names and switches.
Appendix 3 SPOOL 96
Delayed Listing
Usually requests for spooled listings will be processed as rapidly as
possible. Under some circumstances this may not be desired. For
example, a long listing impacts the normal operation of the system by
making the line printer unavailable during its duration. The spooler
allows users to delay such listings until a time of minimum loading
(e.g., 0500) when the unavailability of the line printer is less
likely to interfere with other users.
If the construction /HOLD=hhmm appears in a command line then hhmm is
interpreted as the (24 hour) time of day when the listing should
actually be sent to the line printer. In the example below, 1730 will
be interpreted as 5:30 PM.
Example:
SPOOL SYSTEM.LST[S,SYS]/HOLD=1730
If the time specified is smaller than the current time, it is
interpreted to mean, "list the file tomorrow at the time specified."
That is, if at 10PM you give the command:
SPOOL BAZ.FAI/HOLD=400
then the listing will occur in six hours.
Page Selection
You may follow a file name by a list of ranges of pages that you want
listed. The list must be parenthesized. For example:
SPOOL FOO.SAI (1,7,5:8)
will cause page 1, page 7, and pages 5 through 8 inclusive to be
listed. Page ranges are never sticky.
In octal dump mode, this page range list is used to specify a word
range to list.
Appendix 3 SPOOL 97
Multiple Copies of a File
The REPEAT switch (/REPEAT=n) is accepted by SPOOL. The effect is to
interpret n as a decimal number and to list that many copies of the
file. Multiple copies are spooled as usual, except that the two
pages of heading that normally precede a file (except if the /NOTITLE
switch is used) are suppressed on the second and subsequent copies of
the file.
Appendix 3 SPOOL 98
XSPOOL Special Features
The XSPOOL command is quite similar to the SPOOL command. The XGP
has greater flexibility than the line printer, so more parameters can
be specified in the XSPOOL command.
The following switches are legal only in the XSPOOL command:
FONT#n=f n is a number from 0 to 15 decimal. f is a file
name. The XGP spooler will use the font named f as
font n when spooling. If #n is omitted, n=0 is
assumed. Up to 16 font select switches are
permitted. The defaults for filename, extension, and
PPN are FIX25.FNT[XGP,SYS].
LMAR=n Set left margin to column n. Columns in the XGP are
numbered from 0 to 1699 (approximately). The left
margin is the column which the carriage return
character selects.
RMAR=n Set right margin to column n. If the XGP is going to
write a character that exceeds this margin, a new
line will be started.
TMAR=n Set the number of blank scan lines between the top
edge of the page and the first line of text.
BMAR=n Set the number of blank scan lines between the bottom
of the text and the bottom edge of the paper. (The
monitor interprets BMAR=0 to mean no paper cutting.)
PMAR=n Set the number of scan lines in the page body. Text
is written inside this area. (The monitor interprets
PMAR=0 to mean that the end of a page body is
signalled only by a form feed in the file, for
variable-length pages. This is true only if BMAR≠0.)
XGP The first page of the file is taken as font and
margin commands, preceded by slashes as in the
command line. Only the special XGP spooler switches
(the ones in this table) are allowed. Carriage
returns are ignored. If the first page of the file
is a TV/E directory, the second page is used for the
commands. The command page is not printed. A file
extension of .XGP also invokes this feature.
NOXGP Turns off /XGP.
XLINE=n Set the minimum interline spacing to n scan lines.
NTNODE=n Set the number of text nodes allocated by the monitor
(see below).
NVNODE=n Set the number of vector nodes allocated.
Text nodes and vector nodes are units of core storage allocation used
by the monitor's XGP service routines. Generally, you need not worry
about them, but if you have trouble printing a complex document the
Appendix 3 SPOOL 99
allocation control switches may be able to help you. See a system
wizard to find out.
The /XGP switch, when present, turns off the usual default
assumptions about other switches; in particular, /HEADING is not
assumed unless it is explicitly used. Spooling a file with extension
.XGP implies a default of /NONUMBER as well as /XGP.
More peculiarities:
If any FONT select switch specifies some font number other than 0, no
/HEADING switch will be assumed unless it is explicit.
Page headings will occur in font#0. Whatever font was in effect
before the heading line will be reinvoked before any further
processing. The title page, if present, will be made in font#0.
Appendix 3 SPOOL 100
QSPOOL Command
The QSPOOL command starts the SPOOL program in a special way. QSPOOL
reads the directory of [SPL,SYS] and interprets the contents of the
SPX and XSP (spooler command) files. Essentially, it displays the
queue of files to be printed.
The commands QSPOOL/LPT and QSPOOL/XGP will list spool requests only
for the indicated device.
The queue is based on a priority scheme. The priority of a spool
request is determined by
(time in minutes since spool request, +1) / (file size in records)
Requests are processed in the order of decreasing priority.
The QSPOOL command may be given without logging in.
UNSPOOL Command
UNSPOOL is a monitor level command that invokes the program SPOOL.
If you run UNSPOOL, it will display all the spooler requests that you
(your PPN) have requested, and it will allow you to delete any of
them. If you delete a request which hasn't been seen by the spooler,
then nothing special happens since the spooler is not yet aware of
the command, so it won't be missed. If it happens that the spooler
is already processing your commands, then the listing in progress
will be purged.
If you log in as SPL,SYS and run UNSPOOL, then not only are you
allowed to purge any command file that is either in progress or
pending but you also can change the spooler behavior in the following
ways:
1. You can cause the present listing to be purged.
2. You can cause the present listing to be started over.
3. You can cause the spooler to hold the queue and release the LPT
immediately before starting the next file.
4. You can release the queue from the state induced by holding it.
The commands UNSPOOL/LPT and UNSPOOL/XGP will list and delete spool
requests only for the indicated device. Also, if you run UNSPOOL and
give the monitor REENTER command, it allows you the extended
capabilities described above for the SPL,SYS user.
Appendix 4 MAIL 101
APPENDIX 4
MAIL
This appendix describes the use of the MAIL and SEND monitor
commands, which are used to send messages to users. The SEND command
sends the message to the user's terminal, if he is logged in, and
optionally may also (or instead, if he isn't logged in) send it to
him as MAIL, so it will be seen on login. The next section describes
the REMIND command, for automatic delayed messages, and the LATER
command, for automatic delayed program execution. Finally, the RCV
command for editing mail files is described.
The information in this appendix is taken from the files
MAIL.BH[UP,DOC] and RCV.BH[UP,DOC], the manuals for the MAIL and RCV
programs.
MAIL, SEND, GRIPE, and PLAN Commands
The basic format of the MAIL command is
MAIL <switches> <destination list> <message>
and that of the SEND command is
SEND <switches> <destination list> <message>
Another command, for complaining about system bugs, has the format
GRIPE <message>
This is a version of MAIL which is directed to a special system area.
Finally, there is the special-purpose PLAN command, which creates a
file intended to describe your projected whereabouts, travel plans,
etc. to other users who may look for you while you are away. The
format is
PLAN <message>
Unlike the other MAIL commands, PLAN creates a file containing only
the message in the command rather than adding the message to any
previously created messages. Also, if you use a null message, your
Appendix 4 MAIL 102
plan file is deleted. The plan files are read by the FINGER program
(see page 57).
The /D switch can be used with MAIL, SEND, or REMIND. It causes a
list of the destinations specified by the command to be added to the
message as its last line, preceded by "CC: ". If a distribution list
file is used (see below), both the file specifier and the contents
are included. Note: all specified destinations are listed, even if
invalid.
The /A (append) switch can be used with the MAIL command only. It
means that the message you enter should be appended to the most
recent earlier message from you (i.e., from a user with your login
programmer name) to each recipient. If there is no such message, a
new message will be created as if /A had not been used.
The /T (Tenex, or Topic) switch, used with the MAIL command, allows
the inclusion of a "subject" line in the text of the message. This
switch is meant to be used with ARPA network mail, and is described
more fully in the section of this appendix on ARPA mail.
There are three mutually exclusive switches which may optionally be
used with the SEND command. All have to do with the option of
mailing messages. Normally, SEND will just send messages to
terminals of logged-in users (at all terminals where logged in), but
if a destination of the form PRG (see the next paragraph) is not
logged in anywhere, the user will be given the option of mailing the
message to that prg instead. The switches /Y for yes or /N for no
will assume that response whenever the situation arises. The switch
/M for mail will always mail to all destinations on the list as well
as sending to their terminals, even if they are logged in.
Another switch used with SEND or MAIL is /W, for where, which lists
on the user's terminal the ppn, job number, job name, queue, and
terminal number of all (logged in) recipients of the message.
The destination list for MAIL can be just * , which will send the
message to the file NOTICE.TXT[2,2] so all users will see it on
login. Otherwise, it is one or more project and/or programmer names
separated by commas. The elements of the list should be in the form
PRG or [PRJ,*] or [PRJ,PRG] . Any PRJ or PRG can be a dot (.) to mean
the same as the user's project or programmer name (real ppn, not
alias). List elements may also take the form @<file specification>
(default device DSK, default extension DIS as in DIStribution list);
the specified file will be read and will replace the @ field in the
command. (Note: if the file specification does not give an explicit
extension, the given file name with no extension will be tried before
the default extension given above.) If such a file contains an @
field, the newly specified file will be read and the remainder of the
Appendix 4 MAIL 103
old file, if any, will be ignored. The DIS file may have a TV/E
directory and/or SOS line numbers, which will be ignored. The DIS
file may have any number of lines; destinations are separated by any
combination of returns, linefeeds, spaces, and zero or one comma.
Lines in the DIS file may contain comments started by semicolons,
which will be ignored up to a return; note that this is not true of
the command line typed at the terminal! In the @ file specification,
the notation [PRJ] may be used to mean [PRJ,.]. The notation ↓chars↓
may be used to include non-alphamerics in a file name. To make it
easier to refer to mail files as messages (see below), the filename
scanner will also accept "filenames" of the form ∂ or ∂PRG or
∂PRJ,PRG or ∂PRJ, or ∂PRJ,*. The first case uses your own logged in
programmer name, as does the ∂PRJ, form. These imply device DSK, and
default extension MSG and ppn [2,2], although extension or ppn can be
specified explicitly.
The MAIL command also allows the use of destinations at foreign ARPA
network sites. This facility is described in detail later in this
appendix.
MAIL will also send messages to an arbitrary file of your choice;
this feature may be used, for example, to maintain a diary file.
Only one such destination may be used in a single MAIL command,
although other, standard destinations may be used in the same
command. If the desired output file already exists, you may specify
whether you want the message added at the beginning, as for standard
mail files, or at the end. The destination syntax is :<file> for the
beginning, or &<file> for the end. The file must be on device DSK.
Any filename may be used, as in the @ syntax; the default extension
is .MSG and the default PPN is your current alias. All the usual
switches may be used, except that /A does not affect a &<file>
destination.
If there is a file named OUTGO.MSG in your (login, not alias)
directory, MAIL will save your message at the front of that file as
well as mailing it to the specified destinations. The distribution
list will be included in this file whether or not you use the /D
switch.
If you do not know the programmer name for a user, you can use his
human being type name instead (first or last name). The name will be
found in the file of authorized users, if it is present there, and
you will be told the programmer name for that user to encourage you
to use it in the future (it's faster). If there is more than one
user with the name you give, it tells you all the relevant programmer
names and invites you to try again.
For the SEND command, there are several special forms of destination:
a job number, the device name of a terminal followed optionally by a
Appendix 4 MAIL 104
colon, * (sends to all logged-in users), and ARPA* (sends to all
users logged in via the ARPA network). Any of these special forms,
if used, must be the only destination specified.
The message part of the command may be a one-line message, which will
be sent as is; an @<file specification> (default extension TXT); or
null, in which case the program will request a multi-line message
from the user. Any TV/E directory, SOS line numbers, and form feeds
in a message file will be ignored. If you start typing a short
message on the command line, and decide you need more than one line
after all, you can end the command line with <lf> instead of <cr> and
you will be allowed to continue the message.
When entering a multi-line message from a Stanford display terminal,
you can edit the message with E automatically, and then continue
sending the message, by typing <control><meta>E (anywhere in a
message text line). The message will be saved temporarily in a file
named MAIL.TXT on your (alias) PPN, and E will be started editing
that file. When the message is complete and ready to send, type the
E command <control>X RUN which will restart MAIL, sending the message
and deleting the MAIL.TXT file.
Messages can only be sent to real terminals, or to pseudo-teletypes
which are connected to the IMP (ARPA users). This excludes detached
jobs and non-ARPA PTYs. SEND * sends only to those terminals at
which someone is logged in.
When a message is sent to a display terminal (III or Data Disc), the
MAIL program tries to determine whether the recipient is running some
program, such as E, which changes the normal page printer
positioning, thereby making it possible that the message will be
lost. If it finds anything unusual about the page printer, it warns
the sender of this in a message including the ppn, job name, etc. of
the recipient as in the /W output. The sender may choose at this
point to REENTER and change the SEND to MAIL. (The REENTER facility
is explained below.) SEND * does not type out these warnings.
Mail can only be sent to defined users, i.e., there must be a UFD
matching the destination prj and/or prg names. The mail is put in
the front of the file <ppn>.MSG[2,2]. If the mail is sent to all
users via MAIL *, the program also scans the old NOTICE.TXT[2,2] file
as it copies it, and deletes any messages more than two weeks old.
Also, TV directories and SOS line numbers are deleted from the old
messages in this case.
Another special feature of MAIL * is that an expiration date may be
specified for the message. The format is
MAIL *→ <date> <message>
Appendix 4 MAIL 105
where <date> can be in any of the date formats allowed for the REMIND
command (see next section), except that wildcard dates are not
allowed and only the date (no time) may be specified. The date given
is the one on which the message will be deleted, i.e., it will be
seen last on the previous date. This expiration feature is
implemented by including the expiration date in the message header,
and entering (as with the LATER command described in the next
section) a request to run the program EXPIRE.DMP[RMD,SYS] on the
specified date. This latter program deletes any expired messages.
This implementation is described because the CANCEL command (see next
section) will list the request for the EXPIRE program, so you should
expect that if you use this feature. If no expiration date is
specified, the message is still eligible for deletion after two weeks
as described above.
The check for a file directory for the specified user(s) is made
before the program asks for the message if the multi-line option is
used. If there are no valid destinations, the program exits without
doing anything else. If any destinations are valid, however, the
program asks if you wish to continue, and if so it continues as if
only the valid destinations were specified. (Exception: The list
provided by /D includes all specified destinations, valid or
invalid.) The special case of a command like SEND PRJ,PRG where what
is meant is SEND [PRJ,PRG] will be caught if PRJ is not the name of a
programmer, and the (probable) desired effect is simulated with a
warning message given. Note: in the case of SEND, you will be warned
if a destination user is not logged in. Unlike the message for an
invalid destination, this warning does not require you to reconfirm
your desire to continue. After you finish typing in the message, you
are again notified of not-logged-in destinations as described
earlier.
There is actually a way not-logged-in users can get messages sent by
SEND: it is possible to declare a particular terminal to be your
"home" terminal for SEND purposes. If you have a file called
OPTION.TXT[1,prg] which includes a line of the form SEND:number then
if someone sends you a message with SEND and you are not logged in, a
message will be typed on the tty specified by the above number
indicating that the message is coming, and it will be mailed as if
the sender had said SEND/Y. You can read the message by saying RCV
prg. You need not be logged in to do this, but if you are it
destroys your core image. If the message is sent to [prj,prg] rather
than prg, it looks for OPTION.TXT in [prj,prg] rather than [1,prg].
When a message is MAILed by the MAIL command (not SEND/M, etc.) to a
user who is logged in, a one-line notice is sent to his terminal
indicating that mail has arrived. This also applies to mail-only
reminders (see REMIND/M, next section).
A sample command is
Appendix 4 MAIL 106
MAIL BH,@FOONLY,[S,*] TEXT OF MESSAGE
which will send the message TEXT OF MESSAGE to ↓ BH↓.MSG[2,2],
↓ S ↓.MSG[2,2], and whatever users are listed in FOONLY.DIS in the
user's disk area.
Spaces may be used in all reasonable places in the command. For the
benefit of any weird people who want to start messages with a comma,
there is another syntax in which the destination list is enclosed in
parentheses. In this case spaces may separate destinations instead
of commas if you want. This syntax is also handy for SENDing to a
numeric programmer name (otherwise it would be considered a job
number) and similarly useless things.
There is an error recovery feature for people who type in long
messages, only to discover that because of a typing error they are
trying to send it to a non-existent destination or something; to wit:
If, at the end of a multi-line message, you type
<ctrl><meta><altmode> instead of <ctrl><meta><linefeed>, the message
will not be transmitted. Instead, the original command will be
loaded into your line editor, and you can correct and re-enter it,
but if it does not include a message, the old message will be used
instead of asking for a new one. Also, the same effect can be gotten
by giving a monitor REENTER command after the program exits or you
<call> out of it. From a non-display terminal, of course, the line
editor feature is not available, but you can still REENTER and retype
the command line. Note: this reenter facility only works after the
message has been completely entered; do not <call> in the middle of
typing the message and reenter, finish the message and use
<ctrl><meta><altmode> instead. If the original command line
contained text ending with a <lf>, for the continued message feature,
the text loaded into the line editor will not include that text;
therefore, the entire multi-line message will be used as the new
message if you do not add any text on the command line.
REMIND, LATER, and CANCEL Commands
The REMIND command is used to tell the MAIL program to send and mail
your message at a specified later date and time, possibly repeatedly.
The basic syntax is
REMIND <switches> <destination list> <datime> <count> <message>
The allowable switches are /S for send only or /M for mail only. If
neither is used, the message is both sent and mailed. /D may also be
used, as in MAIL or SEND.
Appendix 4 MAIL 107
The destination list and message fields function like those of the
MAIL command, as described in the previous section. Reminder
recipients must be users known to the system, i.e., they must have a
UFD. The destination field may be omitted, in which case your own
programmer name will be used as if the destination field were the
character "."; NOTE, however, that some forms of datime (those which
start with a letter) could be confused with destinations, and if you
want to use such a form there must be an explicit destination.
The datime field may specify a date, a time, or both. The formats
allowed for dates are illustrated here:
4/28/75 28-APR-75 APR 28, 75
4/28/1975 28-APR-1975 APR 28, 1975
4/28 28-APR APR 28
4/28/* 28-APR-* APR 28, *
*/28 28-* +3
WED WED* W W*
The forms without a year imply this year unless the date is today or
earlier, in which case next year is used. Letters may be upper or
lower case; all after the first three are ignored. The days of the
week have, for convenience, the single-letter names familiar to
Farmers' Almanac readers and former MIT students: M,T,W,R,F,S,D.
Asterisk as a month or year is wildcard; note that forms like */28
expire at the end of the current year. WED* and W* mean every
Wednesday. The +3 form is the number of days later than today, i.e.,
three days from now. Spaces may generally be used or omitted as
desired except within a word or number, except for the APR 28 forms.
Certain mixed notations such as 4/28, 1973 may work, or they may not.
If only a time field is used without a date, today is assumed unless
the time is already past, in which case tomorrow is used. The
weekday forms always imply a day between one and seven days from now
as their first or only instance, never today. Here are the formats
for times:
1423 223pm 223p
14:23 2:23pm 2:23p
0223 223am 223a 223
02:23 2:23am 2:23a 2:23
2 2am 2pm 2a
+2:23 +2: +:23 2p
A date without a time means midnight. The relative forms may only be
used without a date. Letters may be upper or lower case. There may
be spaces on either side of a colon, but NOT between the time and the
am or pm! To use both a date and a time, they must be enclosed in
parentheses and separated by spaces: (WED 3am). A time without a
date may be followed by an asterisk (*), in which case the reminder
will be sent every day at the time specified.
Appendix 4 MAIL 108
The optional count field is used to specify the number of instances
of a repeated request. The format is #<number>. If none is used,
#50 is assumed (the number is decimal). The form #∞ may be used for
requests which are to live forever, but please don't leave these
around after you go away....
When a reminder which is sent more than once is sent for the last
time because its count expires, a warning to that effect is appended
to the text of the message. This does not apply to a message which
is not rescheduled because of the specified datime, such as a date of
*/10 which expires at the end of the year.
Here are sample commands:
REMIND . (WED* 2:45P) #30 Go to 3:00 class!!
Remind me, sir, to monitor your computer usage.
REMIND * APR 15,* LAST DAY TO FILE INCOME TAX RETURNS
The messages will be both sent and mailed at the target time, unless
/S or /M is used to specify send-only or mail-only. The message
header will say "(reminder)" to distinguish it from an ordinary
message. All the features of MAIL work here, like @ fields for
destinations or messages, REENTER, etc. There are the usual
syntactic ambiguities which are not expected to affect anyone in
practice: if the first nonblank after the command name is a digit, it
is taken as part of the datime field in REMIND, as opposed to a
programmer name in MAIL or a job number in SEND.
Since the structure of the reminder queue is rather sensitive to
incorrect date and time information, the current date and time
according to the monitor are checked for reasonableness against the
reminder file. If they are considered unreasonable, no reminders
will be accepted or delivered until the system has been up for at
least five minutes. (Hopefully by then an incorrect date or time
entry will have been noticed and corrected.)
The LATER command is used to cause delayed execution of an arbitrary
program. The format is:
LATER <filespec> <core> <datime> <count>
in which datime and count are as in the REMIND command. The filespec
determines the program to be run; the default device is DSK (the only
other device allowed is SYS), and the default extension is DMP.
Note: if no ppn is specified, the ppn used is your disk ppn (alias)
at the time the command is entered! The delayed job is given your
logged-in ppn as its logged-in ppn regardless of the ppn of the dump
file. It is run with JLOG off, i.e., it is killed if any error
condition arises. The optional core argument, if used, is enclosed
Appendix 4 MAIL 109
in angle brackets. It may include an initial core allocation and/or
a starting address offset, in the form <3K,+1>. The subarguments may
be in either order, and must be separated by a comma if both are
used. The core allocation argument is in decimal units of 1024
words, and the starting address offset is in octal words. If no job
slots are available at the time the job is to be run, it is not done;
therefore, if you are depending on the result you should schedule the
job for non-prime time. (If there is no job slot for the REMIND
phantom itself, it will try to schedule your job as soon after the
given time as it is itself run, but it will only try once.)
The monitor command CANCEL will run a program which will list and
selectively delete reminder requests from or to you, or all requests
if you are logged in as [RMD,SYS]. This program can also be used to
list requests without asking whether you want to delete them: after
the first request is listed, type the letter L in answer to the
deletion question and any remaining requests will be listed without
interruption. LATER requests are also listed and deleted by CANCEL.
MAIL to ARPA network hosts
The MAIL command allows mail to be sent to users at other ARPA
network sites. (This service is not available to network guests,
sorry.)
Since the "@" character was already used in MAIL to specify a file to
be read for command arguments, the character "%" is used to signify
ARPA site names, e.g., BH%SU-AI not BH@SU-AI. Site names can follow
a user name, as above, or can be used alone (followed by a space) as
a "sticky" site:
MAIL %MIT-AI RG,TK,MINSKY,BH%SAIL,PAPERT
will send the message to RG, TK, MINSKY, and PAPERT at MIT-AI, and to
BH at SAIL. (Of course, if SAIL is used as the site name the mail is
not actually sent through the network!)
User names for foreign hosts can be of (essentially) arbitrary
length. If the name is a string of letters and digits starting with
a letter, it can simply be typed as is: TEITELMAN % MAXC for example.
(The case of letters is preserved, in case it matters to the foreign
host.) If the user name contains characters other than letters and
digits, or starts with a digit, enclose it in quotes (") with two
quotes used to represent a single quote if necessary. The host name
cannot contain any special characters except hyphen. Partial site
names are recognized as in our TELNET and FTP programs. Also, a
decimal number may be used instead of a host name if necessary.
Appendix 4 MAIL 110
If the destination list in a MAIL command includes PPNs at SAIL
(which must be enclosed in square brackets), SAIL is assumed as the
destination host and should not be specified explicitly, e.g.,
MAIL %AI [1,BH],TK
mails to TK at MIT-AI and [1,BH] at SAIL. To mail to a PPN somewhere
else, you must say, e.g.:
MAIL "[N900AR00]"%CMU
The outcome of an attempt to send network mail is reported to you, in
a format somewhat like SNDMSG in TENEX. The possible outcomes are
USER at SITE -- ok
USER at SITE -- refused
USER at SITE -- queued
USER at SITE -- failed
The first case means that the mail was successfully sent. The second
means that the network connection was made successfully but the MAIL
command was rejected, possibly because there is no such user at that
host.
Network mail will be queued if it cannot be sent when you make the
request (remote host down, etc.) The mail is queued via the REMIND
phantom. The status report from the MAIL command is "queued". The
mail will be retried at three-hour intervals for three days. If it
is sent successfully, or if the three days run out and the request is
deleted, you will receive a status report from the REMIND phantom, in
the form of a reminder from yourself saying
ARPA network mail to USER at SITE -- ok
if successful, or
ARPA network mail to USER at SITE -- expired
if not. The date and time in the header of this status report will
be the time when the message is actually sent successfully (or
deleted). The date and time in the header of the message sent to the
remote site is the time when you originally tried to send the
message.
It is also possible to get a status report saying
ARPA network mail to USER at SITE -- refused
if the connection to the remote host is made but the host refuses the
Appendix 4 MAIL 111
mail. This status report will also include any error message
returned to us by the remote host.
It is possible to get a "failed" status report from a network MAIL
command if the program is unable to enter the request in the REMIND
queue, for instance because there are no job slots available for the
phantom. In this case you must try again later yourself.
If a message which was typed in (i.e., not from a @FILE construction)
returns either a queued or a failed response, the text of the message
is saved in a file FAILED.TXT in your (alias) directory. This should
not be necessary for queued mail, which will eventually be sent
automatically if possible, but is necessary for failed and reassuring
for queued. The file contains the message as typed, i.e., no header
of either internal or external format, and no space added in front of
each line. If the file cannot be entered (e.g., you are aliased to a
write protected directory), nothing special is done, but if the file
is written successfully you are so informed.
The CANCEL command lists ARPA mail which you have queued and allows
you to abort the request. The listing by CANCEL contains the text of
your message and the name of the addressee, but lists his site by
number rather than by name. It also specifies the number of attempts
remaining before the request will be deleted.
Usually if the mail is refused, and possibly otherwise, the remote
host will send us error messages intended to be helpful to you. If
any such messages are received which are not part of the normal MAIL
sequence, they are typed out along with the status report. Thus you
can hopefully figure out why the mail was refused.
Mail to foreign hosts is prefixed with a TENEX-ish header including
your real name, if known to the system, and your net address (PRG @
SU-AI). Thus recipients should be able to figure out how to reply.
The header contains a "To" line with the names of all destinations as
you typed them, and the full names of all sites. This line can be
eliminated from the header by using the /N (No to line) switch in the
MAIL command.
Distribution list files as in MAIL @FILE can, naturally, include
network destinations. The /D switch, which includes the list of
addressees in the message, includes network addressees, as typed
(e.g., with abbreviated site names if that's what you typed).
Appendix 4 MAIL 112
For those misguided souls who want their network mail to be
compatible with the TENEX READMAIL program, it is possible to include
a subject line in the message header by using the /T switch in the
MAIL command (for Tenex, or Topic if you like). This switch takes
the first line of text in the message as the subject line and also
forces multi-line input (as if the command line ended with lf instead
of cr). Thus the input command
MAIL/T TESLER%MAXC Horrible PUB problem
I tried to run PUB and this is what happened:...
...
<control><meta><lf>
will produce a message like this:
Date: 29-Sep-74 1:55 PM
From: Brian Harvey (BH @ SU-AI)
Subject: Horrible PUB problem
To: TESLER @ PARC-MAXC
- - - -
I tried to run PUB and this is what happened:...
...
-------
If the text input is from a file, the first line of the file will be
used as the subject. If local (SAIL) destinations are included in
the command, the message as received locally will be:
∂29-Sep-74 1358 1,BH
Subject: Horrible PUB problem
I tried to run PUB and this is what happened:...
...
If a network mail attempt fails and a FAILED.TXT file is written, it
will contain:
Horrible PUB problem
I tried to run PUB and this is what happened:...
...
A later command of the form MAIL/T TESLER%MAXC @FAILED will therefore
do the right thing.
If a network mail attempt fails and is queued, the message as listed
by the CANCEL command will not contain the subject line, but it's
really there, fear not.
Appendix 4 MAIL 113
RCV Command
The RCV program allows MAIL messages to be selectively deleted,
listed, or saved as desired. The program is called by simply
entering the monitor command RCV. All mail files which can be
construed as being for you are offered for your perusal; if you are
logged in as [PRJ,PRG], mail files for PRG or [PRJ,PRG] are
automatically listed; mail files for [PRJ,*] or [otherproj,PRG] are
announced if they exist and you are asked whether or not you wish to
edit them. It is also possible to edit other users' mail files with
RCV by giving an argument, e.g., RCV BH; this argument can be PRG or
PRJ,PRG or PRJ, or any of those inside brackets. In this case, mail
for PRG, [PRJ,PRG], or [PRJ,*] respectively will be listed
automatically, and you will be asked about [anyproj,PRG],
[otherproj,PRG] (or just PRG), or [PRJ,anyprog] respectively. If
there is a message file exactly matching the argument (or your prg if
no argument), it will be edited before any other files. RCV * will
edit NOTICE.TXT[2,2].
RCV also allows editing of the files created by the news service
automatic notification feature; you are asked whether or not you want
to edit such a file addressed to the user whose mail you are
examining if it exists. The command RCV \ (or RCV \arg) will examine
these notices first.
It is also possible to use RCV on files not in [2,2] (such as saved
message files previously created with RCV) with a command like:
RCV #filespec
with default of DSK:SAVED.MSG in your (alias) disk area. The
conventions given below for output file specs also apply here.
Finally, an argument of the form ?PRG will type the plan file for
user PRG, if there is one. In this case, the file is merely typed,
not edited.
** NOTE: ONCE RCV HAS OPENED A MESSAGE FILE, YOU SHOULD EXIT ONLY **
** BY TYPING "E" TO AN OPTION REQUEST, AS EXPLAINED BELOW. TYPING **
** <CALL> TO EXIT MAY RESULT IN LOSING SOME OF YOUR MESSAGE TEXT! **
When a mail file is opened, messages are typed out one at a time, and
for each message you may select several processing options, in the
format
<options> [ <space> <filename> ] <cr>
where the [...] represents an optional argument. Each option is
Appendix 4 MAIL 114
represented by a letter; more than one may be used, except that a few
options must be used alone, as noted below. The filename may be
specified if you select the C (copy) or T (transfer) option. For
help in specifying a file, use ? as the filename. Here are the
option letters which select a final disposition for the message:
S Save the message in the mail file.
D Delete it (ignored if any other option also specified).
T Transfer it to a file of your choice.
C Copy it to a file. Like ST combined.
L LPT spool it.
X XGP spool it.
K Transfer it to the file LOGOUT.MSG, which will be typed
automatically when you log out (KJOB).
If none of the above are used, the message will be Saved.
Combinations may be used, e.g., LS will spool the message on the LPT
and also save it in the mail file. Along with any of the above (or
alone, implying S) may be used at most one of the following editing
options:
A Append to the message from the terminal.
Z (Stanford displays only) Edit the message line-by-line
using the system line editor. If you need help with
this facility, type <control><meta>? after entering the
line editing mode.
M (Stanford displays only) Modify the message by running
the text editor, E, with that message as its input.
Return from E by typing <control>X RUN.
Along with any of the above, or alone, can be used the following
option letters to avoid seeing more messages:
E Exit, and enter spooling requests from L or X options.
N Go to the Next mail file, e.g., mail for your
[PRJ,PRG] if any.
E and N do not prevent deletion, i.e., DE will Delete the message and
Exit. If the message was longer than the amount RCV types out before
asking for option requests, the following option may be used along
with any others specified:
Q Quiet processing; do not type the remainder of the
message while processing it as usual.
Note: E or N with no other options implies Q automatically.
Alternatively, any of the following may be used as the only option,
for special processing:
Appendix 4 MAIL 115
P Postpone the decision for this message. This applies
only if the message was longer than the amount RCV
types before asking for options, and you wish to see
the rest of the message before choosing options.
? Type this option list.
Spooling requested by L or X is not done until RCV is exited (by
typing E to an option request, or by running out of input). The
default filename for C and T is DSK:SAVED.MSG in your alias area, but
if you type a filename, its device, extension, etc. become the
defaults for any later selection. If you are confused about your
default output file, type ? instead of a filename. Filenames may
only be given along with a C or T option; if C or T is used without a
filename the previous file is continued. (The first time, you will
be asked for a filename, which may be simply <cr> for SAVED.MSG.)
If you use an argument in the RCV command to edit another user's
mail, the first time you specify any option which would remove a
message from the mail file or alter its contents you are asked to
confirm it. Once you have confirmed such an option, however, you are
not asked again.
There are two options provided at Stanford displays for editing the
text of a message. The M option writes the message in a disk file,
QQRCV.TMP, and runs the E editor, which allows great flexibility
because of E's powerful editing capability. However, it is rather
slow, because all of RCV's internal information and all the message
files must be saved on the disk. For minor corrections to a short
message, you may prefer the weaker but faster editing capability
provided in RCV itself by the Z option. If you select that option,
the lines in your message will be presented to you one by one in your
terminal's line editor. You may edit each line, using the normal
line editor commands, and type <cr> when done with a line. You may
also type the following special characters (α means control, β means
meta):
Appendix 4 MAIL 116
α<cr> Accept the current line as it now appears in your line
editor buffer and stop line editing, accepting the rest
of the message as is.
αβD Delete the current line.
<alt> Undo the changes in this line, loading a fresh copy
into the line editor.
αβ<cr> Accept lines to be inserted before the current line,
until an inserted line is terminated with α<cr>
instead of <cr>, or <alt> is typed at a blank line.
αβI Same as αβ<cr>.
αD (at the end of a line) Combine this and the next line
and load the combined line into the line editor.
β<cr> Break the line at the cursor, accepting the text to
the left of the cursor as it stands and editing the
remaining text as a new line.
αβA Leave line edit mode, as for α<cr>, but accept text
from the terminal to be appended after the existing
text, as if the A option had been selected.
αβ? Type this list.
Blank lines are not presented for editing in the Z option. In both M
and Z options, the initial header line is not edited, nor are the
spaces at the beginning of each text line in the message.
The first time you specify C or T, you are asked to specify a file
name if one was not included in the option line. You can reply with a
standard file spec, ?, or <cr>. <cr> uses the default file name,
initially DSK:SAVED.MSG in your (alias) area. ? will print a helpful
message and let you try again. Thereafter, whatever file you
specified will be used for all C and T messages (the file is not
closed until you exit or select another one) until you specify a new
file name along with a C or T option as described above. The file
which was open for C and T messages provides default extension, etc.
for the new request, e.g., if the first time around you selected
MAIL.FOO[S,SYS], if you then type C MOBY you will get MOBY.FOO[S,SYS]
rather than MOBY.MSG in your area. Note: if the specified file
already exists, the new messages are added at the front.
The notation ↓chars↓ may be used to get non-alphameric characters in
a filename. In addition, a shorthand notation is provided for
entering names of mail files: if the character ∂ is the first
character of the file spec, then the device becomes DSK, the default
extension MSG, and the default ppn [2,2]. (The extension and ppn can
be changed later in the filespec.) If the next non-blank character
is not alphameric, the filename used is ↓ prg↓, i.e., your
programmer name right adjusted. (Note that this is your own login
name, not the name whose mail you are editing.) You can specify a
different name with the formats ∂prg , ∂prj,prg , ∂prj,* , or ∂prj,
(the latter uses your own programmer name along with the specified
Appendix 4 MAIL 117
project name). Any of these may be followed by .ext and/or [ppn] to
change the default values as described above.
RCV has a fairly small message buffer. If a message is longer than
that buffer, seeing the first few lines of the message may tell you
enough about it to decide how to process it without seeing the rest.
Therefore, in that case, you will see as much as fits, followed by an
overflow notice and an option request. After you enter the desired
options, the remainder of the message will be typed as it is being
processed, so you may safely use the Delete option and you will still
see the rest of the message. If you want to avoid this continued
typeout, type the letter Q (for Quiet) before your option choice,
e.g., QD for Quiet Delete. Q is only recognized when a message
overflows. If you select E or N with no other options, you get Q
automatically. If this is not what you want, type, e.g., SE. If you
wish, you may postpone the decision on how to process the message
until after seeing the rest of it, by typing P to the option request.
This will type the remainder of the message and ask again for
options. QP is illegal, and P is only legal when a message
overflows.
RCV may be run when not logged in, with an argument specifying the
mail files to be edited; however, the messages may only be examined,
not modified--the message files are simply listed without asking for
processing options. In this case it is safe to use <call> to stop
reading messages, but please remember that you must kill the job if
you <call> out of it lest it stay around forever!
There are two special options available in RCV, for reading the A.P.
news digest and for editing messages sent with the GRIPE command.
These options are provided when the RCV command is given without an
argument, if you have an OPTION.TXT file with a line of the form
RCV:DIGEST,GRIPE; (either order, or either one alone, is ok).
The GRIPE option is intended for system wizards, while the DIGEST
option is good for people with both DIGEST and NOMAIL in their LOGIN
options. You are asked Read A.P. digest? or Edit gripes? if the
appropriate files exist.
For use at non-Stanford terminals, RCV has a mode in which it accepts
tty input in SOS representation (see Appendix 13). The main reason
for this is to allow ?* instead of ∂ for redirecting messages to
another mail file, but it can also be used with the append option to
allow appending upper/lower case text from an upper-case-only
terminal. The following notes apply:
1. When RCV is started, it decides whether or not to use SOS
representation on the basis of the FCS (full character set) bit
Appendix 4 MAIL 118
maintained for each terminal by the monitor. This bit is set by the
TTY FULL command (or ESC F at a Stanford display) and cleared by
TTY NO FULL (or BREAK F).
2. Whenever RCV reads an altmode character from the tty, it will
enter SOS mode and otherwise ignore the altmode, except that if you
are already in SOS mode the sequence ?<alt> will leave that mode.
(If you are not in SOS mode, of course, the ? will be taken as a real
question mark and the <alt> will enter SOS mode!)
3. These comments apply even to the original command line, although
the monitor will echo a crlf after the altmode to confuse you. Note
that if your FCS bit is off and you want to invoke the RCV feature
which types a user's plan file, you must say RCV ??prg instead of
RCV ?prg as usual.
4. Under no circumstances is tty output done via SOS conversion. I
hate seeing all those question marks!
5. If you are in SOS mode and type ? followed by a character which
is not defined as an SOS code, the character will be treated, and
echoed, as ASCII 7; this will ring your tty's bell if it has one,
give an error message if you are responding to an option request, and
insert a π in your message if you are appending.
Appendix 5 DART 119
APPENDIX 5
DART
The DART (Dump and Restore Technique) program is used to save disk
files on magnetic tape. It also includes tape positioning commands.
This appendix is excerpted from the file DART.REG[UP,DOC], which
includes information on DART tape formats, complete disk dumps, etc.,
as well as the following facilities provided for individual users.
In the description below, braces, { and }, are used to denote
optional items. Vertical bar, | , denotes an exclusive-or choice.
Pointed brackets, < and >, are used to enclose syntactic items that
are defined below.
DART accepts the following monitor commands:
DUMP {<dest>←}{<source>}
RESTORE {<dest>←}{<source>}
REWIND {<dev>{:}}
EOT {<dev>{:}}
ADVANCE {FILE|RECORD} {<dev>{:}} {<count>}
BACKSPACE{FILE|RECORD} {<dev>{:}} {<count>}
LOCATE {<dest>←}{<source>}
TLIST {<dest>←}{<source>}
<dest> ::= {<dev>:}<file>{.<ext>}{[<prj>,<prg>]}
<source> ::= {{<dev>:}{[<prj>,<prg>]}@}
{<dev>:}<file>{.ext}{[<prj>,<prg>]}{,<source>}
<dev> is "any" legal device name.
<file> is any file name or *
<ext> is any file extension or *
<prj> is any project code or *
<prg> is any programmer name or *
<count> is any string of decimal digits.
Caution: The only devices that are appropriate here are disk, mag
tape, and UDP. See the semantics section, below, for further
explanations.
REWIND
This command will cause the device named to rewind to load point.
MTA0 is the default if no device argument is used. The device named
should be a magnetic tape unit.
Appendix 5 DART 120
EOT
This command will cause ADVANCE FILE to be repeated until either two
adjacent file marks are seen (logical end of tape) or until physical
end of tape is reached.
ADVANCE and ADVANCE FILE
This command will cause the tape to advance past the next file mark
on the tape. If a repeat factor is given, then the command will be
repeated that number of times.
Caution: DART often records more than one disk file on a mag tape
file! Therefore, advance file will (sometimes) skip more than one
disk file.
ADVANCE RECORD
Same as ADVANCE FILE except that instead of file marks, record marks
are used. This command leaves you at the front of a record.
BACKSPACE and BACKSPACE FILE
This command will cause the tape to move backwards until a file mark
is seen. DART then does one ADVANCE FILE operation to position the
tape at the front of a file (immediately after the file mark just
read). If a repeat argument is given, then that argument is used to
repeat the backspace operation. Only one ADVANCE is used, after all
backspace operations.
Caution: BACKSPACE or BACKSPACE 1 will position the tape at the front
of the current mag tape file. BACKSPACE 2 will position one
previous, etc.
BACKSPACE RECORD
Same as BACKSPACE FILE except that record marks are used to stop the
operation instead of file marks. After all backspaces are completed,
DART does an ADVANCE RECORD command.
LOCATE
For each file named in the argument list, this command prints the
tape numbers where this file was dumped and the corresponding
creation dates of the file.
TLIST
This command will list on the destination device the names of the
files that are read from the source device.
Appendix 5 DART 121
DUMP
This command will write on the destination device those files that
are specified by the source term. If there is no source argument,
*.*[current area] is used.
RESTORE
This command will restore to the destination the files that are
described by the source term. A null source or destination means
*.*[current area]. The command RESTORE [*,REG]←[*,REG] will restore
all of REG's files to the areas that they were dumped from.
Appendix 6 Service Level System 122
APPENDIX 6
SERVICE LEVEL SYSTEM (RSL)
The RSL monitor command runs the RSL program to reserve service
level. The monitor command takes no arguments; the RSL program
itself accepts commands which control its operation. The first
section of this appendix explains the concept of service level.
The timesharing scheduler gives different priorities to each of three
user classes: interactive users, reserved users, and all others
(scavengers). The first goal of the scheduler is to provide good
service to anyone doing interactive work such as editing. The system
decides whether a given job is currently interactive on the basis of
keyboard input activity.
When you log in at a time for which you have made a service level
reservation, you are assigned that service level. Whenever you are
running, the scheduler will then attempt to give you a processing
level (% of CPU time) given by
PL = SL - C * (B - 1)/10
where SL is the service level, C is your current core size (in K),
and B is the price of service level. The system will not let more
than a certain total service level to be allocated in this way
(currently 80%).
If you are neither interactive nor reserved, you get some of what is
left, which may be pitifully little. The system is supposedly rigged
so that reserved users always get service at least as good as
scavengers. Note that if you are editing and execute a long-running
string search, the system may decide you are a scavenger and take
forever to finish.
Each authorized user has an allowance of two kinds of money, called
whams and bams. Whams may be used only to purchase reservations for
peripheral devices, including III terminals, while bams are good only
for CPU service. The allocations are as follows.
Whams Bams
Half time user 4 100
Full time user 8 200
Panic user 16 400
You are half time or full time in accordance with the portion of your
Appendix 6 Service Level System 123
time devoted to A.I. activities. In an emergency situation, you may
be given a short term appointment as a Panic user.
Your "money" allocations are actually revolving funds in that if you
reserve machine time and use it, you may then re-use the reservation
money. In effect, then, there is a limitation on how much you can
reserve at a given time. There is no conversion between whams and
bams, nor can funds be transferred between persons.
The display costs W (whams/hour) vary with time of day as given in
the table below. The price P (bams/hour) of buying any given service
level SL (in percent) is
P = SL*B
where B is the rate (bams/hour) given in the same table.
Time 0000-0900 0900-1300 1300-1800 1800-2400
W & B W & B W & B W & B
Monday-Friday 1 2 3 2
Sat., Sun., holidays 1 1 2 1
You may reserve a display without a service level or vice versa, but
reservations may be made only for integral hours beginning on the
hour. Other peripheral devices may be reserved only if you have
reserved a service level. The minimum service level purchase is 5%.
The time from 8AM to 9AM and from 5PM to 7PM on weekdays is reserved
for maintenance. No service level or device reservations may be made
in those time periods until 18 hours before the period. Maintenance
reservations for the entire machine may be made, however.
Using the RSL Program
The monitor command RSL with no arguments runs the RSL program. You
must be logged in first.
RSL will prompt you with an asterisk ("*") when it's ready to accept
commands. Command format is discussed in detail below. Commands are
RESERVE, CALENDAR, AVAILABLE, DISPLAY, MAINTENANCE, HELP, and EXIT.
For example, to reserve 15% SL at 1400 on the 31st of December, any
of the following command strings will serve:
RESERVE 15 SL AT 1400 HOURS ON 31-DEC
r 15 on 31 decemb at 2 p.m.
RE 2 PM ON 31 DECEMBER 15
Appendix 6 Service Level System 124
R 15 14 31 12
If you wish to change a service level reservation, just do another
reservation for the new desired amount. Releasing a service level
reservation may be done by "reserving" 0% SL.
IMPORTANT!
When you are through making reservations, you should exit from RSL by
typing E. If you exit instead by typing CALL, then there is a
possibility that your reservations may get lost. The E command causes
reservations to be written out onto the disk.
How to Reserve Devices
The six III displays, the user disk pack, plotter, and MTA0 may also
be reserved. RSL merely makes and retains device reservations;
unlike service level, enforcement is left up to the users. To
reserve III24, 5% service level, and the user disk pack, type RESERVE
5 SL III 24 UDP or R III4UDP5. A device may be unreserved by
preceding it with a minus sign: R -III PLTR -UDP MTA will
simultaneously reserve MTA0 and the plotter, and unreserve the UDP
and any and all IIIs. If you don't care which III you get, you may
say III instead of III4 or III23 etc. Note that the plotter is
considered by the computer to be the same device as the paper tape
punch, so reserving PLTR also makes the PTP unavailable.
Other Commands Available
To get a list of your current reservations, type DISPLAY or D for
short. The command string D XYZ will get a list of programmer XYZ's
current reservations.
The CALENDAR command will show you which programmers have what
reservations on a given time and date. For example, C FOR 3 will
show you the reservations for the current hour and the following 2
hours also.
AVAILABLE is a short form of CALENDAR. A 0000 HOURS FOR 24 ON
1-JAN-88 will yield 24 lines of output telling how much service level
Appendix 6 Service Level System 125
is still available at each time slot on the first day of 1988, should
the system last so long.
HELP or H will type for you a summary of command string structure in
condensed form, not necessarily comprehensible.
The MAINTENANCE or M command reserves the entire (bare) machine for
hardware or software purposes, e.g., M 4 pm for 2 will request the
machine for maintenance from 4 to 6 pm. This command can also be
used to cancel a bare machine reservation. Just type a minus sign
immediately in front of the date specification, e.g. M -25 nov 73
for 2. Do not use this command without prior administrative
approval.
Proper use of the EXIT command can be very important, and requires an
understanding of its function. The data base for all current and
future reservations is kept internally in the *-SL-* program at all
times. Many of the commands you give to RSL cause a change in this
data base. However, these changes are not necessarily made in the
permanent data base, which lives on the disk. The EXIT (or E)
command causes the internal data base to be written out on the disk,
and it is only this copy which can survive system crashes or system
maintenance. It is possible to lose reservations by leaving RSL with
CALL instead of~ E.
RSL Command Syntax
Anything in curly brackets is optional.
A slash ("{ }/"{ }) between two terms represents one or more
delimiters (space, slash, apostrophe, minus sign, comma).
A double arrow ("{ }↔"{ }) between two terms indicates that the order
of the terms is not always important. If the syntax of a term
distinguishes it, then it may appear anywhere in the command line,
provided no nondistinguishable term which might be confused with it
precedes it. (It's simpler than it sounds.)
Appendix 6 Service Level System 126
<RSL command> ≡ <Rcom>|<Acom>|<Ccom>|<Dcom>|<Hcom>|<Mcom>|<Ecom>
<Rcom> ≡ RESERVE {<sl-arg>}↔{<hr-arg>}↔{date-arg>}↔{<for-arg>}
↔{<device>}
<Acom> ≡ AVAILABLE {<hr-arg>}↔{date-arg>}↔{<for-arg>}
<Ccom> ≡ CALENDAR {<hr-arg>}↔{date-arg>}↔{<for-arg>}
<Dcom> ≡ DISPLAY {<programmer initials>}
<Hcom> ≡ HELP
<Mcom> ≡ MAINTENANCE {-}{<hr-arg>}↔{<date-arg>}↔{<for-arg>}
<Ecom> ≡ EXIT
<sl-arg> ≡ <integer> | <integer> SL
<hr-arg> ≡ {AT} <military hour> | {AT} <civilian hour>
<civilian hour> ≡ [ 1 | 2 | ... | 12 ] { AM | A.M. | PM | P.M.}
<military hour> ≡ [0 | 1 | ... | 23]{00} {HRS|HOURS}
<date-arg> ≡ {ON} <people day>
| {ON} <day-arg>/<month-arg>{/<year-arg>}
<people day> ≡ SUNDAY | MONDAY | ... | SATURDAY
<day-arg> ≡ 0 | 1 | 2 | ... | 31
<month-arg> ≡ <people month> | <computer month>
<people month> ≡ JANUARY | FEBRUARY | ... | DECEMBER
<computer month> ≡ 1 | 2 | ... | 12
<year arg> ≡ {19}71 | {19}72 | ... | {19}80
<for-arg> ≡ <integer> | FOR <integer>
<device> ≡ MTA | PLTR | UDP | <iii>
<iii> ≡ III | III0 | III1 | ... | III5
| III20 | III21 | ... | III25
Semantics
Names of commands, weekdays and months may be abbreviated by
truncation, and may be capitalized or not. Device names may not be
abbreviated.
The FOR term (e.g., FOR 3) specifies a consecutive number of hours,
starting with the hour and date specified.
When the syntax of a command does not allow a left-to-right scanner
to distinguish terms, then the ambiguous terms will be assumed to be
in the order listed in the syntax.
If a term is missing from an argument, RSL will supply one it deems
appropriate. RSL always has a time and date "in mind," called the
default date. The default time and date are usually the last time
and date you typed. If a command does not specify a time (date),
then the default time (date) will be used.
Commands terminated with a line feed (altmode) will advance (backup)
Appendix 6 Service Level System 127
the default time and date before executing the command. The amount
of advance (backup) is 1 hour, 1 day, 1 week, 1 month depending as
plain, control, meta, or control-meta were used with the line feed
(altmode).
A date specified by giving the name of a day, is the earliest future
or present date falling on the given weekday. (Notice that at 0830 on
Wednesday, "WEDNESDAY" specifies either the current date, or the date
one week hence, depending on the hour specification.)
Appendix 7 FIXIMLAC 128
APPENDIX 7
FIXIMLAC
The FIXIMLAC command is used from IMLAC terminals to reload the
program which controls the terminal into its minicomputer. The
command runs a program on the PDP-10, and may be used without logging
in first. The use of the command is shown below as part of the
startup procedure.
IMLAC RELOADING PROCEDURE
IF THE IMLAC IS DEAD:
1. SHIFT LOCK off (up).
2. Start at 40 (Push STOP, then hold the AT 40 key while pushing
START).
3. Type C (upper case) several times to send ↑C's.
4. Type fiximlM (upper case M goes out as a <CR>).
5. Wait about 10 seconds to give the system time to log you in.
6. Hit <CONTROL><TOP><SHIFT>S.
IF THE IMLAC IS ALIVE:
1. At monitor level, type FIXIML.
2. When the program puts out a *, type
<CONTROL><TOP>B (Sends the IMLAC to its loader)
<CONTROL><TOP><SHIFT>S (Starts the loader)
Appendix 8 ARPA Network 129
APPENDIX 8
ARPA NETWORK
The ARPA network is a facility organized by the Advanced Research
Projects Agency of the Department of Defense to connect computers at
various research centers funded by ARPA, allowing people at one site
to use the resources of another site. The device which provides the
interface between our computer and the network, called an IMP
(Interface Message Processor), can be used by user programs like any
other I/O device. Two main system programs are provided for
connecting to other computers by console commands: the user TELNET
program, called T, and the File Transfer Protocol, FTP. The former
allows you to use your terminal as if it were a terminal of the
remote host computer; the latter provides high-speed transmission of
data between hosts. This appendix explains the use of these
programs. It contains excerpts from the file NET.JAM[UP,DOC], which
also describes the UUOs for user programming of the IMP. The FTP
command description here is taken from FTP.DCS[UP,DOC].
The TELNET or TN commands, which are identical in effect, are used to
run T. The FTP command runs FTP. Both require that you be logged
in. They take a remote host name as argument. (The host names are
listed in a later section of this appendix.) Both programs try to
establish a connection to the remote site. Once this connection is
established, the T program simply allows you to type at the remote
computer as if you were using one of its own terminals. (T also
handles special command characters which control local echoing of
typein, etc.) FTP, however, accepts commands which allow sending and
receiving files. The special commands for these programs will be
described below, after a glossary of ARPA network jargon.
Glossary
NCP This is the software in the monitor that
services the IMP.
TELNET The thing you type into that sends your
characters off to a foreign site is a user
TELNET program. The thing that receives them
at the other end and passes them on to the
timesharing monitor there is the server
TELNET. These are generally user-level
programs.
Appendix 8 ARPA Network 130
SOCKET When you log in on another system, there are
four socket numbers involved. There is a
local send socket number, a local receive
socket number, a foreign send socket number,
and a foreign receive socket number. These
numbers are internal connection indexes and
are used to keep different connections
separate. Each connection has a unique set
of 4 socket numbers. (Actually, there are
two connections involved, one in each
direction. Thus, in ARPA net terminology,
each connection has two socket numbers, but
you have four sockets altogether.)
LOGGER Each site is supposed to provide a program
that does nothing but sit around and listen
to socket 1. When someone connects to socket
1, the LOGGER is supposed to send it back a
socket number that the foreign host can use
to connect to the LOGGER's host on. Only the
serving host knows what socket numbers it can
service, and it is the job of the LOGGER to
pass out these numbers. (The LOGGER also
listens to socket 3 for FTP requests.)
RFC Request for connection. This is how a pair
of hosts establish a connection. The
originating host sends an RFC to the
destination host with a local socket number
and a foreign socket number as arguments.
The destination host can complete the
connection by returning an RFC with the same
socket numbers, or can refuse the connection
by returning a close code.
LINK Once a connection is established, an 8-bit
link number is assigned such that the 8-bit
host number concatenated with the 8-bit link
number is unique at both ends of the
connection. During the lifetime of the
connection, the link number is used to
separate the connections, being as how the
socket numbers are 32 bits long. The IMP
itself is programmed in such a way that only
one message may be in transit on a particular
link at a time. The IMP signals the sending
host that the message has arrived by
returning a RFNM (request for new message)
with that link number as an argument. All of
this is invisible to the user.
Appendix 8 ARPA Network 131
CONTROL MESSAGES Data is sent between hosts on a non-zero link
number. Link zero is defined as the control
link, on which hosts communicate regarding
the connections. All host to host protocol
messages are exchanged on link zero.
ALLOCATION The host to host protocol defines a kind of
flow control on a higher level than the RFNM
control. This is the allocation system.
When a connection is first established, the
receiving host sends a control message
telling the sending host how many bits and
messages can conveniently be buffered. The
sending host must then not send more than
that many bits or messages without waiting
for more allocation from the receiving host.
Although much of this is unseen to the user,
the user has control over how much allocation
the system will give the remote host. For
data and file transfer purposes, it is
convenient to increase the allocation over
the system default amount.
The User TELNET
Our user TELNET program is called T. It is run by the TELNET or TN
commands, which take a site name as argument. When it is run, it
attempts to connect to the specified host. It will type either
Connection established if successful, or an error message otherwise.
The various possible connection errors are described later.
The information which follows also applies to the DIAL program, a
version of T which uses dial-up telephone connections rather than the
ARPA network. The format of the DIAL command is explained on page
59. Another version of T is called PTYJOB, for communicating with a
pseudo-Teletype; it is not run with its own monitor command, but by
R PTYJOB.
Foreign sites do not use the Stanford character set. Instead, they
accept standard ASCII codes. Letters, digits, and most of the
punctuation characters available in ASCII are the same in the two
codes, however. The main difference is that codes 1 to 37 (octal),
used for special printing characters at Stanford, are control
characters in ASCII. The precise use of these control characters is
defined by the remote host. TENEX sites, for example, use ASCII
control-A to mean "delete one character," like our BS. Our T program
Appendix 8 ARPA Network 132
handles this difference by interpreting the CONTROL key on a Stanford
keyboard to mean ASCII control; i.e., CONTROL on a letter makes T
convert the letter to upper case and subtract 100 from the character
code. T uses META and CONTROL-META characters as commands to itself,
as listed below. In some cases, META and CONTROL-META are
equivalent. In others, a processing switch is set by META and
cleared by CONTROL-META. In the list below, βX represents META-X,
αβX is CONTROL-META-X, and ⊗X means either one.
There are certain differences between the two character sets in
non-control characters. These are handled by automatic translation
in our TELNET and FTP user and server programs. Specifically, the
following translations are done:
char Stanford ↔ external
~ 32 ↔ 176
} 176 ↔ 175
ALT 175 ↔ 33
≠ 33 → 33
The Stanford not-equal has no external representation and cannot be
entered from a remote site. All other codes are transmitted
unchanged. Note that our BS (octal 177) is the ASCII delete; there
is an ASCII backspace (10), which is our λ. Typing λ or CONTROL-H to
T will produce that code. The other possible ambiguities are our
characters ↑ (136) and ← (137). These codes have two different
meanings: the DEC PDP-10 version of ASCII agrees with our use, but
the official version uses those codes for ∧ and _. Our network
programs support the arrow version, and our ∧ and _ characters are
transmitted unmodified as 4 and 30.
It is possible to simulate the CONTROL and META functions when using
T from a Teletype. To allow this, T recognizes the character
control-E (↑E) as an escape character if it is run at a Teletype.
One ↑E before a character means CONTROL, two ↑Es means META, and
three means CONTROL-META. For example, ↑E↑EQ from a Teletype is like
META-Q at a display.
Control Commands to T
⊗<number>An octal argument is assembled from digits typed this way.
βL Enter line mode. Characters you type are sent to your line
editor as usual, and not sent to the remote site until
activated by RETURN, LINE, ALT, or some CONTROL or META
character not taken as a line editor command.
Appendix 8 ARPA Network 133
αβL Enter single character mode. In this mode, each character
is an activation character, and is sent individually to the
foreign host when it is typed. This is useful for using DDT
at a remote host.
⊗S(no arg) Send. If T is in line mode, this command causes all the
characters typed so far to be sent to the foreign host.
Normally, the characters are sent only when CR, LF, or ALT
are typed when in line mode. This command is not useful for
Teletypes, because typing ↑E↑ES does not cause an activation
in line mode.
<arg>⊗S Sends the previously typed octal argument as a single ASCII
character. For instance, ⊗1⊗0⊗1⊗S is the hard way to send
an "A".
αβ<BS> Sends 177 (ASCII delete). The line editor will not send
<BS> to programs without CONTROL-META.
βY Enter Datapoint simulation mode. This is often used when
talking to the three ITS systems at MIT. If you also
convince MIT that you are a Datapoint, their display
programs will work properly from our display terminals.
αβY Leave Datapoint simulation mode.
βE Begin local echoing. Also attempts to turn off remote
echoing. Different sites have different echoing
conventions. Some sites expect to send back echoing, some
do not. If you find that what you type is not being echoed
in a reasonable time, you may use this command to let you
see what you are typing. In the DIAL program, this makes
you look like a half duplex terminal, and does not change
the state of remote echoing.
αβE Terminate local echoing. Also attempts to turn on remote
echoing. One does this when each key one types appears
twice on the console. Turning off local echoing will often
eliminate one copy of the key. The DIAL program does not
attempt to change the state of remote echoing.
βO Turn on console typeout. See αβO.
αβO Turn off console typeout. Useful when output is already
going to a file and you don't want to waste the time it
takes to type out on your console as well.
βR Inhibit sending of LF after CR. Normally, when CR is typed,
a LF is invented by the system and CRLF is sent to the
Appendix 8 ARPA Network 134
foreign host. This command inhibits sending the LF after
the CR.
αβR Enable sending LF after CR. The inverse of the above
command.
βK Inhibit duplexing LF after CR. The system normally types a
LF out when you type CR. This command inhibits that. This
command is different in effect from βR, because it alters
only what appears on your screen, not what goes out over the
line.
αβK Enable duplexing LF after CR. The inverse of the above
command.
⊗X Set escape character. The escape character is normally set
to ↑E, but may be changed by this command. The next
character typed is taken to be the new escape character.
This is useful for Teletypes only.
βI Open input file. This command asks for a file name, then
proceeds to send said file to the foreign host.
αβI Close input file.
βD Open output file. This command asks for a file name, then
proceeds to write everything that comes from the foreign
host on this file. Note that characters you type, or
characters from any input file that is opened, do not go
into the output file unless the foreign host is duplexing
them.
αβD Close output file.
βF Open output file like βD, but append the text to an existing
file of the same name. You are only asked for a file name
if you have not previously opened an output file with βD or
⊗F during this session; if you have already named an output
file, the new output will be appended to that one.
αβF Append to file, like βF, but always asks for a file name.
⊗<form> If there is an output file open, insert a form feed
character in it.
⊗Q Quit. Terminates connection and closes any input or output
files that may be open.
⊗C (TELNET only) Send interrupt. This is the network protocol
for "return to monitor" or equivalent.
Appendix 8 ARPA Network 135
βC (DIAL only) Turn on control character mode. In this mode
all characters received from the dataphone are typed on your
console.
αβC (DIAL only) Turn off control character mode. In this mode,
octal codes 1-10, 16-37, and 177 are not typed on your
console when received from the dataphone.
βM (PTYJOB only) Enters a mode in which all 9-bit characters
you type are sent unchanged to the PTY except βM, αβM, βZ,
and αβZ. (Of course, if you are in line-at-a-time mode some
control characters are still interpreted by the system line
editor.)
αβM (PTYJOB only) Leaves the above mode; meta-characters are
again interpreted as commands to PTYJOB.
⊗Z (PTYJOB only) Quotes the following 9-bit character, so it is
sent to the PTY as is, regardless of the βM mode switch.
T normally sets the echoing and activation conventions to those used
by the particular site in question, but anomalies do occur. For
instance, the foreign host's program may instruct the foreign system
to inhibit duplexing, but that will not inhibit local duplexing. For
example, if local echoing is in effect, an attempt by the remote
computer to prevent echoing of a password will not work.
The File Transfer Protocol
The FTP command is used to set up a connection to a remote File
Transfer Protocol Server. It takes a site argument like TELNET, and
the connection process is identical. Once the connection is set up,
you can enter the following commands to the FTP program. Each
command is a four-letter name followed by arguments as described
below. Note that file specifications for remote sites must follow
the format conventions of that site; they are passed on verbatim by
the FTP. In particular, the case of letters may be significant at
some sites.
Note: FTP command strings sent over the control link to the remote
host are subject to character conversion to conform with standard
ASCII, as described in the discussion of the TELNET program.
However, the files transferred over the data link are not modified by
FTP.
BYTE n n is a (decimal) number indicating the byte size of the
Appendix 8 ARPA Network 136
network data connection. Data will be sent from one site to
another in bytes of this size.
TYPE x x is A, I, L, P, or E, and specifies the representation type
for the data. A means the data is in (8-bit) ASCII. I is
image type. The other three are more obscure: local byte,
print file (ASCII), and EBCDIC print file. At the moment,
SAIL supports ASCII and image types only. The default is
image. If you must know about unusual types and modes, read
the official FTP document, NIC 10596.
MODE x x is S, B, T, or H, meaning stream, block, text, or hasp
transmission modes respectively. At the moment, SAIL
supports stream and text modes only. The default is stream.
USER x x is a string which the foreign site will recognize as a
valid user description, user name, or ppn. Not all sites
require a user name.
PASS foo foo is a password. Some sites may restrict access to those
who can supply the magic foo.
ACCT x x is an account number. Some sites may require this for
their billing/accounting purposes.
RETR x←y This command retrieves a file from the foreign site. x is a
local file specifier, and y is a foreign file specifier.
The foreign file y is copied to the local file x. Current
settings (or default values) are used for byte size,
representation type, and transmission mode. The x← string
is eaten locally, and the RETR y part is transmitted to the
foreign site. If you haven't typed any MODE, TYPE, or BYTE
commands, the defaults will be sent before the first RETR or
STOR.
STOR x→y STOR means store, and this command is the inverse of the
RETR command. A local file is copied to a foreign site.
APPE x→y This command will append the local file to the end of the
foreign file.
MAIL x x is a user ID (like our PPN). Following this command you
may type in a message which will be mailed to the specified
user at the foreign site. The message must be terminated
with a line containing only a period.
MLFL x→y In this case x is a local file specifier, and y is a foreign
user ID. The text of the specified file will be mailed to
the specified user.
Appendix 8 ARPA Network 137
HELP This command asks the foreign FTP server to send back a
message indicating what commands it takes, etc.
STAT x If x is omitted, this command asks the FTP server to send
back information regarding the FTP connection, e.g., socket
numbers. If x is a directory name at their site (like our
PPN), it lists that file directory.
DELE x x is a foreign file specifier. The specified file is
deleted at the foreign site.
RNFR x x is a foreign file specifier. This command is short for
rename from; it must be immediately followed by a RNTO.
RNTO x x is a foreign file specifier. This command completes the
file rename operation started by RNFR. (Some sites accept *
for wildcard specification in these commands.)
RSTR RSTR means restore--included to help remedy a hack in the
current FTP, wherein sometimes an attempted transfer fails,
but our end is unaware of it and leaves the connection open.
The RSTR command causes our end to forget everything it
knows about data connections to the other end. Any command
should be legal after that.
QUOT x x is any character string, which should be an FTP protocol
command with arguments. The string is sent as is over the
FTP control link (see FTP protocol, NIC 10596 for terms).
QUOT was included to allow you to execute commands which are
as yet unimplemented here, or which are nonstandard,
specific to some serving site. It will be of little use for
those commands which require some special action by the FTP
program at this end.
QUIT Terminate connections with the foreign site and quit.
Appendix 8 ARPA Network 138
Table of Host Mnemonics
Note: A decimal site number may be used with TELNET and FTP instead
of a site name. Also, <site>#<socket number> will select a
particular socket. (Some hosts provide special services at
particular sockets.)
Appendix 8 ARPA Network 139
LONG NAME SHORT SITE LONG NAME SHORT SITE
AFWL-TIP AFWLT 176 LL-ANTS LLAN 95
ALOHA-TIP ALOT 164 LLL-RISOS RISO 21
AMES-11 AME11 208 LONDON LOND 42
AMES-67 AMES 16 LONDON-TIP UKT 170
AMES-TIP AMET 144 LONDON-VDH UKVD 106
ARPA-DMS ARPA 28 MIT-AI AI 134
ARPA-TIP ARPT 156 MIT-DMS DMS 70
BBN-11X BBN11 5 MIT-ML ML 198
BBN-1D BBN1D 232 MIT-MULTICS MLTX 44
BBN-NCC NCC 40 MITRE-TIP MTRT 145
BBN-TENEX BBN 69 NBS-ICST NBS 19
BBN-TENEXA BBNA 197 NBS-TIP NBST 147
BBN-TENEXB BBNB 133 NCC-TIP NCCT 168
BBN-TESTIP BBNT 158 NORSAR-TIP NORT 169
BELVOIR BELV 27 OFFICE-1 OFF 43
BRL BRL 29 PARC-11 PA11 160
CASE-10 CASE 13 PARC-MAXC MAXC 32
CCA-TENEX CCA 31 PARC-VTS VTS 96
CCA-TIP CCAT 159 RADC-TIP RADT 146
CHII CHI 131 RAND-RCC RAND 7
CMU-10A CMUA 78 RML-TIP RMLT 165
CMU-10B CMU 14 RUTGERS-TIP RTGT 174
CMU-11 CMU11 142 SCI SCI 45
CMU-CC CMUCC 206 SCRL-ELF SCRL 67
DOCB-TIP DOCT 153 SDAC-44 SDAC 26
ETAC ETAC 20 SDAC-TIP SDAT 154
ETAC-TIP ETAT 148 SDC-CC SDCC 72
FNWC FNWC 33 SDC-LAB SDC 8
FNWC-TIP FNWT 161 SRI-AI SRI 66
GWC-TIP GWCT 152 SRI-ARC NIC 2
HARV-1 HRV1 73 SU-AI SAIL 11
HARV-10 HARV 9 SU-DSL DSL 194
HASKINS HASK 201 TYMSHARE-TIP TYMT 171
HAWAII-500 HA500 208 UCB UCB 98
HAWAII-ALOHA HAAL 36 UCLA-CCBS UCL10 129
I4-ELF I4ELF 79 UCLA-CCN CCN 65
I4-TENEXA AMES 15 UCLA-NMC NMC 1
I4-TENEXB I4TB 143 UCSB-MOD75 UCSB 3
ILL-CAC ILL11 12 UCSD-CC UCSD 35
ILL-NTS ILNTS 76 UNIVAC ILL 140
ISI-DEVTENEX ISDT 150 USC-44 USC 23
ISI-SPEECH11 IS11 22 USC-ISI ISI 86
ISI-TSP ISTSP 214 USC-TIP USCT 151
LBL LBL 34 UTAH-10 UTAH 4
LL-67 LL67 10 UTAH-TIP UTAT 132
LL-TSP TSP 138 WPAFB-TIP WPAFT 175
LL-TX-2 TX2 74
Appendix 8 ARPA Network 140
Connection Error Messages
CONNECTION HAS BEEN CLOSED
This means just what it says. The host has voluntarily broken the
connection for reasons known only to himself.
RESET RECEIVED FROM HOST
The host has sent us a reset command which directs our NCP to break
all connections to this host and clear our tables of everything it
knows (regarding previous connections) about this host. Some sites
will send a reset the first time you connect to them as standard
procedure. In this case, trying again will succeed. In the more
normal case, this means the host has crashed and just been brought up
again.
HOST DEAD
This means that the RFC got to the host's IMP, but was not read from
the IMP within 90 seconds, and the IMP timed out. This generally
means the host is really down.
DATA QUOTA OVERFLOW
The host is not conforming to protocol and has sent us more data than
we allocated him. We are breaking the connection.
END OF FILE
Doesn't occur in normal circumstances.
SOCKET IN USE
Generally happens after an aborted attempt to connect to someone
else. This means the foreign host suddenly sprang to life after T
timed out and sent us an RFC from a different socket than he told us
he has now. This cures itself in a few minutes.
CAN'T CHANGE SOCKETS
SYSTEM ERROR
NO LINKS AVAILABLE
ILLEGAL BYTE SIZE
These all indicate horrible system errors of one form or another and
should not happen.
Appendix 8 ARPA Network 141
IMP DEAD
The interface has begun to malfunction, the network control center
has brought the IMP down, or someone here has given the magic UUO
that brings the IMP software down.
HOST NOT RESPONDING
One of the various timeouts inside T or the system went off. T times
out generally when a message is sent to the foreign host which
demands a response and no response was received within a "reasonable"
time.
The following messages appear only in conjunction with one of the
above messages and indicates only the point in T where the error
occurred.
CAN'T CONNECT TO LOGGER
The error occurred on the initial RFC to get the foreign host's
LOGGER.
DIDN'T GET SOCKET NUMBER FROM LOGGER
We exchanged RFC's with the foreign host's LOGGER, but somehow he did
not send us a socket number.
CAN'T CONNECT TO RECEIVE SIDE
We got a socket number from the LOGGER and tried to open a connection
on that socket when the error occurred.
CAN'T CONNECT TO SEND SIDE
We got the socket number and successfully sent an RFC to the receive
socket, but we hit an error when trying to send an RFC to the send
socket.
ERROR WHILE WAITING FOR RECEIVE SIDE
This means that we successfully sent RFC's to the send and receive
sockets, but we got an error while waiting for the return RFC on the
receive side.
ERROR ON OUTPUT
ERROR ON INPUT
These are given after the connection is established and refer to
errors that occurred while doing output or input.
Appendix 9 Care and Feeding of Devices 142
APPENDIX 9
CARE AND FEEDING OF DEVICES
The Line Printer
On the front of the line printer (LPT) there are several buttons
(STOP, START, TOP OF FORM, MANUAL PRINT, TEST PRINT, OFF, and ON) and
several indicators. The normal state of the line printer is with the
START button lit and all red indicators off. (TOP OF FORM is always
lit.)
If the system or the spooler reports that the line printer is hung,
check the following things. If the START button is not lit and there
are no red indicators, push the START button. If there are red
indicators, NO PAPER or PAPER LOW ALERT lit, then you have to put in
more paper (or fix the paper that has gone astray).
To reload the paper, find someone who knows how to do it and watch
him, or do it yourself. Reloading the paper is fairly obvious. The
front cover (which includes a transparent section) is hinged at the
top; lift it. The yoke is the assembly which carries the ribbon, the
printing drum (which you can't see) and a rotating disk at the left
side. Open the yoke by finding two toggle switches (one with each
hand) and pushing them both down. These switches are located to the
left and right of the yoke and below it. They are each labeled CLOSE
- OPEN. The yoke will stop when it is fully open. Find four paper
tractors, two above the printing hammers and two below. Each tractor
has a sprocket wheel (which pokes through the holes in the edge of
the paper) and a retainer which holds the paper against the sprocket.
Open all the tractors. If the paper is perforated for 8.5 inch wide
pages, be sure that the perforation is closer to the right side.
Push the TOP OF FORM button before loading the new paper. Use the
black arrows to align the "concave" fold. The concave fold is the
one where the two adjacent sheets are front to front when folded.
Close the four paper tractors so the sprockets fit into the holes in
the paper. Close the yoke by finding those two switches and pressing
up on both of them. Push START.
Always restart the fan-fold at the back of the LPT so the paper will
stack properly.
The line printer logic can become hung. This condition is identified
Appendix 9 Care and Feeding of Devices 143
by the MANUAL PRINT light being on continuously. Push MANUAL PRINT
and then START to clear this condition. If that fails, open the door
on the right side and push the black button labeled RESET. If that
fails, find a wizard.
If the ALARM STATUS light comes on or if the printer starts making a
loud buzzing noise, shut off the printer (push OFF) and find a
wizard. (This light may come on briefly when the printer is being
turned on.)
The YOKE OPEN light comes on when the yoke is open while the paper is
being changed. When the yoke is closed it should go off.
The printer has a ribbon that can be changed too. It is best to
watch someone do it before trying it yourself.
DECtapes
To mount a DECtape, first assign an available drive. Drives are
identified to the system by a rotary switch labeled 1,2,...,8
corresponding to DTA1, DTA2, etc. Although there are eight numbers
on the switches, there are only four drives, and the system will not
recognize DTA5 and up. Generally you should have no reason to change
the normal setting of these switches. Place your tape on the left
reel of the drive and thread the tape over the top of the tape guide
and head assembly. Wind several turns of the tape onto the takeup
reel (turn the reel clockwise). Finally flip the OFF-WRITELOCK-WRITE
switch to WRITE LOCK, or if you want to write, to the WRITE position.
To unload the tape, wind the tape off the takeup reel by the
direction switch (push it to the left and hold it). Turn the drive
off when all the tape is on the left reel. Grasp the reel firmly and
pry it off the hub.
Magnetic Tapes
First, decide whether you want to write on the tape or not. If you
intend to write, place one of the plastic write-enable rings in your
tape. Place your tape on the top hub and twist the handle in the hub
clockwise to tighten the reel to the hub. (You can really lose if
you don't tighten it all the way!)
Between the two reels there is a three-position switch labeled
Appendix 9 Care and Feeding of Devices 144
START-BRAKES. Move the switch to the right and hold it there to
release the brakes on the hubs. Unwind the tape until the end of the
tape is about a foot from the floor. Carefully thread the tape into
the slot between the reels to the left of the brake release switch.
Wind the tape onto the bottom reel (wind the reel clockwise). You
must be holding the brake release switch to the right to wind the
tape. Wind several feet of tape onto the takeup reel until you see
the metal foil load point marker go by. Then push the brake release
switch to the left (the START position). The tape will hiss and
spin. Hold the switch in START until all motion stops.
There are some control buttons on the top panel. One is labeled (and
lighted) REMOTE-LOCAL; this button toggles. In LOCAL mode, push the
REWIND button. If you're not sure that you have the load point
marker on the takeup reel, push the FORWARD button for several
seconds to wind the tape forward onto the takeup reel until it passes
the load point marker, then REWIND. REWIND positions the tape at
load point. Set the drive in REMOTE and it is all set to use.
Unloading the tape is simple. In LOCAL mode, push the REWIND button.
When the tape finished rewinding, push the brake release switch and
manually wind the tape onto the top reel. Unscrew the hub and remove
the reel.
The magnetic tapes are quite finicky and the system software is
somewhat flaky. There are several things that you can do with mag
tapes that will upset the timesharing system and require the
intervention of a wizard who will be angry at you for disturbing his
slumber. Never stop your job when it is operating the tape by typing
CALL. Instead, the job can be stopped by causing the magnetic tape
to appear hung. This is done by switching back and forth between
REMOTE and LOCAL until the system stops the job.
There is a reset button for each tape drive located behind the small
front panel below the drive mechanism. This button clears all tape
motion functions in a reasonable way.
Xerox Graphics Printer
The normal condition of the XGP is indicated by the green ON light
and the orange READY light being on. If all indicators are off, the
XGP main power has been shut off inside the cabinet, possibly for
some reason.
If the red OFF light is on, push the ON light. This will turn the
XGP on, unless some abnormal condition obtains, such as a paper jam
near the cutter.
Appendix 9 Care and Feeding of Devices 145
If the orange STANDBY light is on, look inside the panel above these
indicators. The following is the normal state of the indicators and
switches within:
Knobs: TEST PATTERN: OFF
VERTICAL POSITION: leave this one alone
Lights that should be on:
All POWER SUPPLIES lights
(except 10kv and 2.5kv lights will
be off any time there is some other
problem)
All PROCESS INTERLOCK lights
All CONTROL LOGIC (except IN SYNC)
Lights that should be off:
All SUPERVISORY SIGNALS
FAULT
IN SYNC
Appendix 9 Care and Feeding of Devices 146
Certain conditions of the XGP are indicated by lights being OFF. (If
any of the conditions listed below obtains, the 10kv and 2.5kv power
supplies will shut off.)
FWT Fixed wait timer has not run long enough after
being turned on. Wait 2 minutes.
FUSER The fuser is not hot enough.
If the XGP has just been turned on, wait 5 minutes;
otherwise, reset the over-temperature sensor.
The over-temperature sensor is reset by a small
black button located somewhere in the middle of the
fuser wick assembly.
WEB CLEAN
The drum cleaning web must be replaced.
PAPER OUT
Load more paper.
DRUM The drum assembly has been disengaged.
SWEEP PRESENT
The interface is not providing a sweep signal.
This may mean the connector is unplugged or the
interface turned off.
To load a new roll of paper, open the left door of the XGP. Unscrew
the roll retainer and remove the old roll. Unwind a foot of paper
from the old roll and then cut the paper at the roll. Mount the new
roll and tape the front end of the new roll to paper separated from
the old roll. Make the leading edge of the joint as smooth as
possible. Using the MOTOR MANUAL DRIVE button, advance the splice
through the machine until it has passed the cutter.
If any problems develop in this sequence, find a wizard. Beware:
certain parts of the XGP are hot; you can be painfully burned if you
touch the wrong things.
There is a drum cleaning web that runs out at inconvenient times.
There is a small diagram inside the XGP explaining how to change the
web.
Toner is icky black stuff that makes the marks on the paper. It gets
used up and runs out too. Someone is supposed to check the toner
every day and add more if it gets too low. If the XGP runs out of
toner, the pages will start getting lighter, there will be occasional
black splotches on the paper, and frequent sand-like particles will
be found embedded in the paper. Toner is checked through the access
Appendix 9 Care and Feeding of Devices 147
panel in the back of the XGP. There is a lever there that adjusts
the rate at which toner is used on the paper. This lever must be
placed either at the lightest (inner) setting or one setting darker.
Never, never set it anywhere else.
If you don't like the copy quality, complain to a wizard. Don't
adjust things yourself.
User Disk Pack
There is one drive on the IBM 3330 disk system which is reserved for
private disk packs. This drive is labeled USER PACK. Use the
command ASSIGN UDP to assign the drive before you mount your pack.
Assuming there is no pack mounted already, you can mount your pack by
moving the CLOSE-OPEN switch to OPEN. The drive will open up.
Remove the bottom cover from the pack by squeezing the two handles on
the bottom together. Place the pack bottom on the top of the
cabinet. Place the pack (still in the top cover) in the drive unit.
Turn the handle clockwise. It will be somewhat hard to turn. Turn
until it stops. Carefully remove the top cover and place it on the
bottom cover. Make sure the two covers are aligned to keep dust out
of the enclosed space. Turn the top cover so the label on it is
visible. Flip the CLOSE-OPEN switch to CLOSE and the START-STOP
switch to START. The drive will close and start spinning the pack.
When the green ready light comes on, the pack can be used. There is
a R/W-READ switch for the pack. If you do not intend to write on the
pack, it is a good idea to put the drive in READ mode.
Unloading the pack reverses the steps above. Turn the START-STOP
switch to STOP, and the CLOSE-OPEN switch to OPEN. The drive will
open as soon as the pack slows down. Take the top cover whose label
corresponds to the label on the pack and place it carefully over the
pack. Turn the handle counter-clockwise until it moves freely. Lift
the pack out of the drive. Place the bottom cover under the pack and
press it on until it latches. The covers help keep dust off the
packs. Return the pack to the storage rack. Leave the label facing
outwards so you can find it again.
Occasionally, the UDP may not be available to anyone. If this
happens, a wizard will explain why. Never touch a disk drive unit
unless you have it assigned! Never touch anything but the drive
which is marked USER PACK! If you are confused by something you see,
ask about it before you touch!
Appendix 9 Care and Feeding of Devices 148
Core Storage
We have the most outlandish collection of junk that anyone ever
called a memory system. Occasionally it works. At the other times,
it produces parity errors and sometimes it decides not to work at
all.
Memory errors have never, never been fixed by software means. In
particular, reloading the system never solves the underlying problem.
If the system becomes unusable because of these errors, a wizard
should be found.
Memories stop working entirely due to hardware logic bugs. There is
a MEMORY STOP light on the PDP-10 console, which usually indicates
this problem. Usually the memory can be reset and the system
continued. If possible, find a wizard to fix it. Otherwise, read
on. A hung memory can be identified by:
DEC core:AW RQ light off
new Ampex: UA light off
old Ampex: UA light off
Push stop on the PDP-6 and the PDP-10. Reset the memory by:
DEC core:Push RESTART (top panel) and RESET
(inside the front panel) simultaneously.
new Ampex: Push RESET (the big green-blue button)
on Core 0 and Core 1 simultaneously, or
Core 2 and Core 3 simultaneously.
old Ampex: Push the black CLEAR button inside the
cabinet and the white RESET button on
the AMPEX INTERFACE box.
Once the memory is reset, the computers have to be convinced that
nothing bad happened. To do this on the PDP-10, the USER MODE light
on the console must be off. If it is on, first turn on the SINGLE
INSTRUCTION switch on the console, then push CONTINUE. This should
turn off the USER MODE light. Then turn off the SINGLE INSTRUCTION
switch. When the USER MODE light is off, enter 700200 010003 in the
data switches and push the EXECUTE key. If the MEMORY STOP light on
the PDP-6 is on, follow the same procedure as on the PDP-10 with
these exceptions: Instead of a USER MODE light on the console, the
PDP-6 has an EXEC MODE light at the top of the second bay to the left
of the console; this light must be on for the execute. Also, there
is no SINGLE INSTRUCTION switch on the PDP-6; instead, while the
INSTRUCTION STOP switch is down, push INSTRUCTION CONTINUE once.
Finally, push CONTINUE on both machines.
Appendix 10 Reloading the System 149
APPENDIX 10
RELOADING THE SYSTEM
If the system crashes or refuses to run jobs normally, it must be
reloaded. If possible, find a system programmer, who will try to
find out what the trouble is. If that fails, check the MEMORY STOP
light on the PDP-10 console. If this light is on, look up the memory
stop procedure in Appendix 9. Otherwise, read on.
First, write in the log your name and the reason that the system is
being reloaded.
Find the paper tape labeled SYSTEM LOADERS and mount it in the paper
tape reader. (It may be mounted already, or it may be an unlabeled
blue mylar tape loop.) Push the console keys RESET and READ IN.
If you're lucky, the system will load itself without further hassle.
If the PDP-6 is stopped, it must be started by setting 204 in its
address switches and pushing the keys INSTRUCTION STOP, IO RESET, and
START.
If the system is being loaded without the PDP-6, then the current
date and time must be typed in at the CTY during the reloading
sequence. Be sure you supply the correct date and time!
If this procedure fails, check that the NXM STOP switch on the
console is turned on; then check the following switches, located
inside the second door to the left of the console: JSYS ENB and MAPAC
ENB off, MA TRP OFFSET on.
If the system loader tape still fails, find the DECtape with the
current system. The DECtape will be labeled with the system name and
date. Mount it on some DECtape drive. Find the paper tape labeled
256K TENDMP or 128K TENDMP, and load it into the paper tape reader
(on the PDP-10). Stop the PDP-6. Press RESET and READ IN on the
PDP-10. The paper tape will be read, and the CTY will type carriage
return and line feed. Type n$ where n is the number of the DECtape
drive and $ is an alt mode. The DECtape should spin for a while,
then it will stop and the CTY will type crlf again. Type L$S then
carriage return. The DECtape will spin again, followed by another
crlf. Type 206$ then G$ to start the system. (If the Librascope
disk is down, type 200$G$ instead.)
Appendix 11 Monitor Error Messages 150
APPENDIX 11
MONITOR ERROR MESSAGES
This appendix lists the error messages typed by the monitor itself
(not by other system programs) with explanations for some of them.
Many have to do with errors induced by UUOs in your program, and
these are explained in the UUO Manual, in the writeup of the UUO
involved. The list is alphabetical; messages which start with a
variable part are sorted under the first fixed word.
Note: Several of these messages are of the form XXX AT USER
<address>. It is possible in some of these cases to get XXX AT EXEC
<address> instead, which means that the offending instruction was not
in your program, but in the monitor, which was trying to do something
on your behalf when it happened. If this happens repeatably, or if
the message is shortly followed by a system crash, tell a system
programmer.
ADDRESS CHECK FOR DEVICE <dev>
Your program was trying to use the indicated device, and
supplied a buffer address, dump mode command address, etc.,
outside the bounds of your core image.
ADDRESS OUT OF BOUNDS, UUO AT USER <address>
Your program executed a UUO which takes as an argument an
address in your core image, and the address was out of
bounds. The address given is that of the offending UUO.
ALREADY ASSIGNED TO JOB <job number>
You typed an ASSIGN command, and the device you wanted is
in use.
<terminal> ALREADY ATTACHED
You typed an ATTACH command, and the job you are trying to
attach is already attached to a terminal.
ALREADY IN USE, CAN'T CHANGE FORMAT.
You gave an ASSIGN PUBLIC or ASSIGN PRIVATE command for a
UDP which was already assigned as OLD, or vice versa. The
UDP will be assigned to your job in the same mode as
before.
Appendix 11 Monitor Error Messages 151
ALREADY IN USE, CAN'T MAKE PRIVATE.
You gave an ASSIGN PRIVATE or ASSIGN OLD command for a UDP
which was already in use by another job. The UDP will be
assigned to your job as PUBLIC.
?AMBIGUOUS JOB NAME
Your program gave a MAIL UUO which refers to another job by
name, and there are two or more jobs with that name.
ATTEMPT TO ENABLE INTERRUPT ON PDP-6
Your program tried to enable a user interrupt routine to
run on the PDP-6. This feature is not implemented.
ATTEMPT TO GENERATE NON-ENABLED INTERRUPT
Your program tried to send itself or another job an
interrupt for which the job was not enabled.
ATTEMPT TO INITIATE SPW JOB WITH ONE ALREADY RUNNING
Your program has a spacewar module active and is trying to
start another one on the same processor.
ATTEMPT TO SCHEDULE I-LEVEL PROCESS, UUO AT USER <address>
Your program's interrupt routine executed a UUO which would
put it in a wait state. User interrupt routines aren't
allowed to do that. See the UUO Manual.
BAD DIRECTORY FOR DEVICE <dev>
The device is a DECtape. This might mean that the tape is
in a format not recognized by the monitor. (Our system
uses a different directory format from the PDP-10
standard.) It can also happen if you try to write on a
write-locked DECtape.
BAD RETRIEVAL
The pointers to your file on the disk are invalid. See a
system programmer to try to fix it.
Appendix 11 Monitor Error Messages 152
BUFFER TOO LARGE, UUO AT USER <address>
Your program is trying to use an I/O device for which there
is a limit on the allowable user buffer size, which you
exceeded. The UUO Manual explains the rules for each
device.
BUSY
You gave a TALK command addressed to a terminal which is in
user mode or has characters in its input buffer.
CAN'T ATT DEV
You gave the privileged ATTACH <device> command and don't
have the DEV privilege.
<dev> CAN'T BE REASSIGNED
You gave a REASSIGN command in which the device to be
reassigned was your own terminal. This is illegal.
CAN'T CONTINUE
You typed CONTINUE after one of the other error messages
came out, and you are not allowed to continue the job after
that error. You also cannot continue a job after a SAVE or
SSAVE.
CAN'T DET DEV
You gave the privileged DETACH <device> command and don't
have the DEV privilege.
CAN'T ENTER-RENAME MFD
If you get this message, see a system programmer, who will
eat you.
CAN'T LOCK WITH SEGMENT
Your program, which has an upper segment, gave a LOCK UUO.
This is illegal.
CAN'T TERMINATE SOMEONE ELSE'S SOCKET!
Your program is using the ARPA network and tried to
terminate a connection which does not belong to it.
Appendix 11 Monitor Error Messages 153
CHANNEL IN USE.
You gave the privileged DETACH command with a Data Disc
channel as argument, and the channel is in use.
CONFLICT BETWEEN INTERRUPT ENABLINGS
Your program tried to enable both old-style and new-style
interrupts in a conflicting manner.
CONS TRAP AT USER <address>
You can only get this one from a program running on the
PDP-6, which means it must be a spacewar module. The CONS
instruction is a nonstandard addition to our PDP-6
installed for the benefit of LISP people. It sometimes
gives this message. The address is that of the CONS which
failed.
CORE DEADLOCK.
The monitor's free storage area has expanded enough so that
user core is no longer big enough for your core image.
This might fix itself if you wait a while, but if you must
run immense programs your best bet is to come back at 3am.
COULDN'T GET YOU A SEGMENT. WILL TRY TO LET YOU WIN WITH SETPR2.
You tried running a program with an upper segment. The
program was loaded into core, but there is no room in the
monitor's job tables to make an entry for the upper
segment. The monitor will try to simulate an upper segment
for you by leaving the upper segment code in your lower
segment, but simulating upper-segment relocation by the
SETPR2 UUO mechanism. This ought to work ok for most
two-segment programs, but just in case it doesn't the
monitor types this warning. If you are writing a
two-segment program, consult the UUO Manual or a system
programmer for advice.
Appendix 11 Monitor Error Messages 154
COULDN'T UNPURIFY UPPER. CONTINUE TO TRY ANYWAY.
You typed a DDT command. JOBDDT in your core image points
to an address in your upper segment as the DDT starting
address, and your upper segment is write protected. DDT
and RAID both contain instructions which modify themselves.
The monitor tries to solve this by unprotecting your upper
segment. If you are sharing the segment with other users,
it has to load a new copy for you so the other users still
have a protected one. This might fail, for example,
because there are no job slots available. All highly
unlikely.
<dev> DEASSIGNED, BUT STILL INITED!
You gave a DEASSIGN command for a device which is in use by
your program. This is all OK; the monitor is merely
reminding you that you still control the device. The
FINISH command will release it, if that is what you want.
DEVICE <dev> NOT AVAILABLE
The device specified in a RUN, R, GET, SAVE, or SSAVE
command was unavailable to your job.
DEVICE <dev> OK?
The device is somehow disabled. If it's a mag tape, it may
be in LOCAL mode. The line printer could be out of paper.
You can fix the problem and type CONTINUE.
DISK IS FULL!
Your program is trying to write a file on the disk, and
there is no room. If you delete some files (using another
job!), you can type CONTINUE and the file will be written.
DISK TRANSMISSION ERROR
This is a disk failure. See a system programmer.
ENTER FAILED
The filename you typed to ENTER NEEDED (see below) didn't
work. Most likely this is a protection failure.
Appendix 11 Monitor Error Messages 155
ENTER FAILED!
The file specified in a SAVE or SSAVE command cannot be
written. This probably means that the file already exists
and is write protected.
ENTER NEEDED. PLEASE TYPE FILE NAME.
Your program tried to write on the disk or a DECtape
without doing an ENTER UUO to specify the filename. You
are given the opportunity to specify the file to be used.
ERROR IN DSKSER
Horrible error in the monitor disk service routine. See a
system programmer.
ERROR IN JOB <job number>
This message will appear along with one of the others. The
only reason you might need it is if you are running more
than one job at once (through a PTY, for example).
ERROR IN MONITOR
This message is usually followed closely by a system crash.
Call a systems programmer.
FILE ALREADY EXISTS. DELETE?
The filename you typed in response to ENTER NEEDED (see
above) already exists. If you type Y (and RETURN), it will
be replaced with the new output; otherwise, you are asked
for another name.
FINISH WHAT?
You typed a FINISH command with an argument and weren't
using that device (or there is no such device).
GOTCHA!
This is not an error. You get it when you are in a device
wait queue and your turn for the device comes.
Appendix 11 Monitor Error Messages 156
HALT AT USER <address>
Your program executed a JRST 4, instruction. You are
allowed to CONTINUE the job after this message. The
address typed is the address containing the HALT
instruction, not its effective address.
HUNG DEVICE <dev>
The device did not respond properly to your attempt to use
it in some predetermined time. This probably means that
the device is unusable for some hardware reason.
HUNG DEVICE: PDP-6
Your program is trying to run a spacewar module on the
PDP-6, which is not responding. Get a system programmer to
fix it.
I-LEVEL TIME-OUT
Your program's user interrupt routine has run longer than
the maximum time allowed. (No other user can run while an
interrupt routine is in progress, which is why they are
limited in time. See the UUO Manual about interrupts.)
I-LEVEL UUO GIVEN WHEN NOT AT I-LEVEL
Your program tried to execute a UUO which is only allowed
in a user interrupt routine, when it was not servicing an
interrupt.
ILL INST. AT USER <address>
Your program executed an undefined instruction or one which
is not allowed in user mode.
ILL MEM REF AT USER <address>
Your program tried to read or write an address greater than
the size of its core image. The offending instruction is
at the address typed.
Appendix 11 Monitor Error Messages 157
ILLEGAL ADDRESS FOR ADC-DAC
The PDP-6 has detected an illegal address which you
specified to be used for some function connected with the
ADC or DAC device. This was not detected when your program
executed a UUO, but asynchronously, in the device service
program running on the PDP-6.
ILLEGAL ATTACH LOOP
Your program is typing into a pseudo-teletype and gave an
ATTACH command trying to attach its controlling job. In
particular, people using the system via the ARPA network
get this if they try to attach to their TELNET server job.
(You also get it if you try to attach the job controlling
the PTY controlling the job controlling you, etc.) Typed
on the PTY.
ILLEGAL DATA MODE FOR DEVICE <dev>
Your program has tried to use an I/O device in an undefined
way, e.g., binary I/O to a terminal. The UUO Manual
discusses data modes for each device.
ILLEGAL DD CHANNEL.
Your program is trying to use a Data Disc channel to which
it is not allowed access.
ILLEGAL FORMAT DUMP MODE COMMAND LIST
Your program is trying to do dump mode I/O incorrectly.
See the UUO Manual.
ILLEGAL INSTR. ADDRESS.
This message refers to instructions in a display program
your job is running.
ILLEGAL OLD-STYLE ACCESS TO NEW FORMAT UDP. UUO AT USER <ADDRESS>
You have given an ASSIGN OLD command for a UDP, and mounted
a pack which has been formatted for file-structured use,
and your program tried to write on the pack (gave an ENTER
UUO).
Appendix 11 Monitor Error Messages 158
ILLEGAL PAGE SIZE SPEC.
Your program is trying to adjust the page printer geometry
incorrectly on a display terminal.
ILLEGAL PIECE OF PAPER
Your program gave a PPIOT UUO which specified a piece of
paper number greater than 17 (octal). See the UUO Manual.
ILLEGAL PROTECTION CODE!
You gave a SETUWP or CLRUWP command with an argument
greater than 1000 octal.
ILLEGAL UUO AT USER <address>
Your program executed a UUO which the monitor does not
recognize. (Probably you are trying to execute data.)
INPUT DEVICE <dev> CANNOT DO OUTPUT
Your program has done something silly like trying to write
on the paper tape reader.
INPUT DEVICE <dev> HAS NO INPUT BUFFER HEADER, UUO AT USER <address>
Your program executed an input UUO in buffered mode, and
had not provided an input buffer header when it opened the
device.
IN USE.
You gave the FLUSH command and the specified terminal is in
use.
INTERRUPT ADDRESS OUT OF BOUNDS
Your program has enabled user interrupts and specified an
interrupt address which is not in your core image.
IO TO UNASSIGNED CHANNEL AT USER <address>
Your program executed an I/O UUO specifying an I/O channel
which was not opened. See the UUO Manual about channels
and I/O.
Appendix 11 Monitor Error Messages 159
<dev> IS BUSY, WILL YOU WAIT?
Your program tried to open a device which another job is
using. If you say Y (then RETURN), your job is placed in a
queue of jobs waiting for the device, and will be continued
automatically when it's your turn. If you say N, you are
then asked DIRECT IO TO DISK? and can again say Y or N. If
you say Y, you may be asked for a filename (if your program
does input or output on that channel without specifying a
name). If you say N again, your program gets a failure
return on the INIT or OPEN UUO.
JMS NOT LEGAL; USE JSR.
Your program set up a III display program with the
forbidden JMS instruction in it. See the UUO Manual.
JOB CAPACITY EXCEEDED
The maximum allowable number of users are already logged
in. Try again later.
<n>K OF CORE NEEDED
The maximum amount of core storage available to user jobs
is not enough for the core image you are trying to run.
The number in the message is the decimal number of
1024-word blocks needed for the program. (Note: if you
give a RUN or GET with a core size argument which is too
big, the message will tell you the minimum amount of core
necessary to fit the dump file, not the amount you asked
for. The amount in the message might well fit even though
what you asked for didn't.)
LOGICAL NAME ALREADY IN USE, DEVICE <dev> ASSIGNED
You typed an ASSIGN command with a logical device name
argument which you were already using for another device.
The device you requested is assigned to your job, but the
logical name still refers to the old device.
LOGIN PLEASE
You typed a command which requires that you log in first.
Appendix 11 Monitor Error Messages 160
LOOKUP FAILED
The filename you typed in response to LOOKUP NEEDED (see
below) could not be read. (It doesn't exist or is read
protected against you.) You get to type in another name.
LOOKUP NEEDED. PLEASE TYPE FILE NAME.
Your program tried to read from the disk or a DECtape
without specifying a file by executing a LOOKUP UUO. You
are given the chance to specify the file to read.
NEED ENTER BEFORE OUTPUT
NEED LOOKUP BEFORE INPUT
You get these messages if your program opens a directory
device, closes a file, and then tries to do input or output
on that channel without another LOOKUP or ENTER.
NO CORE ASSIGNED
You typed a command which refers to your core image (e.g.,
DE or START), and you don't have a core image.
NO DDT
You typed a DDT command, and your core image does not
contain DDT or RAID (JOBDDT zero).
NO REENTER ADDRESS
You gave a REENTER command and your program has no REENTER
address (JOBREN is zero).
NO STARTUP ADDRESS!
You gave a START command and your program has no start
address (JOBSA zero).
NO SUCH DEVICE
You typed something the monitor did not recognize when a
device name was required.
NO SUCH JOB
You gave an ATTACH or kill command with a nonexistent job
number.
Appendix 11 Monitor Error Messages 161
NO SUCH PRIVILEGE!
The privilege name specified in an ENABLE or DISABLE
command does not exist.
NO UPPER SEGMENT!
You typed a SETUWP or CLRUWP command and your core image
does not include an upper segment.
NON-EX JOB NAME OR NUMBER
Your program gave a MAIL UUO addressed to a nonexistent
job.
NON EX MEM AT USER <address>
This can't happen, it says here. It means that your
program tried to address a word of core storage which does
not exist. However, we have the maximum possible amount of
core, so there shouldn't be any nonexistent addresses.
Possibly a hardware failure could cause this. (If you are
running a spacewar module which resets its relocation and
protection registers when for some reason we are running
with less than the full amount of core, you can get this
legitimately.)
NOT A DUMP FILE
The file specified in a RUN, R, or GET command is not in
dump file format.
NOT A NEW FORMAT UDP
You have typed an ASSIGN PUBLIC or ASSIGN PRIVATE command
for a UDP, and mounted a pack which has not been formatted
for file-structured use. The error is not detected until
your program tries to perform some operation on the UDP.
See a system programmer about formatting your pack.
NOT A TTY.
You gave the FLUSH command with an argument which is not
the name of a terminal.
NOT ENOUGH CORE!
You typed a CORE command with an argument greater than the
maximum core available to a user job.
Appendix 11 Monitor Error Messages 162
<filename> NOT FOUND
The file specified in a RUN, R, or GET command was not
found. If the problem is not a spelling error, make sure
you are not aliased.
NOT ONE OF YOUR JOBS.
You typed a KILL command with a job number not belonging to
your programmer name.
OUT OF BOUNDS
Some numeric argument to a monitor command wasn't right.
This could be an address not in your core image in a DE or
E command.
OUTPUT DEVICE <dev> CANNOT DO INPUT
Your program has tried to do something silly like read the
line printer.
OUTPUT DEVICE <dev> HAS NO OUTPUT BUFFER HEADER, UUO AT USER
<address>
Your program executed an output UUO in buffered mode and
did not provide a buffer header when it opened the device.
PARITY ERROR IN YOUR CORE IMAGE. LOC = <address>
PARITY ERROR IN YOUR UPPER SEGMENT. LOC = <address>
A hardware failure has invalidated the contents of the
indicated address in your core image. The safest thing to
do in this case is to restart with a fresh copy of your
program. If you were running for a long time and are
willing to risk continuing, you can type CONTINUE. You can
also try to fix the bad location with DDT or RAID, if
present, or with the DE and E commands.
PC EXCEEDS MEM BOUND AT USER <address>
Your program tried to jump to an address outside the range
of your core image. The message, unfortunately, tells you
the illegal address rather than the address of the jump
instruction.
Appendix 11 Monitor Error Messages 163
PDL OV AT USER <address>
Your program had a pushdown list overflow. The address
typed is the effective address of a PUSHJ, the return
address for POPJ, or the address following a PUSH or POP.
PIECE OF GLASS TOO BIG
Your program is trying to run a display program which is
too big for the monitor to handle. Sorry.
PLEASE KJOB OR DETACH
You gave a LOGIN command when you were already logged in.
PLEASE TYPE ↑C FIRST
You started your program with CSTART or CCONTINUE, leaving
your terminal in monitor mode, and then typed a command
which affects your core image. Such commands cannot be
processed while the program is running. Type CALL and try
again.
PROJECT-PROGRAMMER NUMBER MISMATCH
You typed an ATTACH command, and the job number and PPN
arguments did not agree.
RESET CALLED FROM I-LEVEL, OR SPACEWAR LEVEL
Your job's user interrupt routine or spacewar module
executed a RESET UUO.
SAVE/GET IO ERROR
Try again. If it still fails, ask a wizard for help.
SORRY, NO <dev>'S AVAILABLE
You typed an ASSIGN command with a generic device name
(e.g., MTA), and all of them are in use.
SORRY, PROTECTION FAILURE!
You typed a SETUWP or CLRUWP command, and are not permitted
to change the write protection of your core image's upper
segment.
Appendix 11 Monitor Error Messages 164
SORRY, YOU CAN'T HAVE THAT PRIVILEGE!
You typed an ENABLE command specifying a privilege name,
and neither the privilege you specified nor the PRI
privilege is in the list associated with your PPN; or the
privilege is one which is not permitted to any user (XGP or
SSL).
SPACEWAR LOSSAGE - <error>
The error indicated can be ILL MEM REF, PC EXCEEDS MEM
BOUNDS, NON EX MEM, PDL OV, or CONS TRAP. It means that
your job started a spacewar module (see the UUO Manual),
which caused the error. See the particular error message
in this list for an explanation.
SWAP CALLED FROM I-LEVEL
Your job's user interrupt routine executed a SWAP UUO.
SWAP READ ERROR
Your job was swapped out of core, and when the monitor
tried to read it back in, there was a hardware error on the
swapping disk. Your core image is probably gone forever.
If you really need it badly, you might be able to persuade
a system programmer to try to recover it for you, but even
then there's not much chance. Start over.
THIS FORM OF MTAPE IS NO LONGER SUPPORTED!
You are trying to run an old program which uses old-style
disk MTAPE UUOs. See the UUO Manual for the new disk
MTAPEs.
TOO FEW ARGUMENTS
This error message can be typed by several different
monitor commands and should be self-explanatory.
TOTAL DPY BUFFER SPACE EXCEEDED.
Your program is trying to run a III display program, and
there is no more room in your allocation of display buffer
space.
Appendix 11 Monitor Error Messages 165
UDP OFFLINE OR WRITE LOCKED
Your program has tried to perform some operation on a UDP,
and there is no pack mounted, or the drive is not turned
on, or it does not have its ID plug inserted in the front
panel, or it is switched to read-only and your program
tried to write on it.
USE "KJOB" TO LOG YOURSELF OFF.
You typed a KILL command with your own job number as the
argument.
$$ USER DPY ERROR AT <address>
This message comes along with another which explains the
error in your display program. The address is that of the
offending instruction.
USER I-LEVEL <error>
The error can be ILL. MEM. REF., NON-EX. MEM., or PDL OV.
See the associated message in this list for an explanation.
The error happened in your program's interrupt routine. If
it says CH3 ERROR instead of one of the above, see a system
programmer.
UUO AT USER <address>
This line appears with certain other messages. It tells
you the location in your core image of the instruction
which caused the error.
<dev> WASN'T ASSIGNED
You gave a DEASSIGN or REASSIGN command and hadn't assigned
the device.
WASN'T DET
You gave the privileged ATTACH <device> command and have
the privilege, but the device wasn't detached.
Appendix 11 Monitor Error Messages 166
YOU ARE LOCKED OUT OF CORE!
The amount of user core available has been reduced by other
jobs starting spacewar modules (thereby being locked in
core). There is not enough room to fit your core image.
This condition may fix itself quickly; the message does not
return you to monitor mode, but will keep appearing every
so often until you fit again. If you have a really huge
program, run it late at night.
Appendix 12 Bibliography 167
APPENDIX 12
BIBLIOGRAPHY
This appendix lists various other sources of information about system
programs. Some of these are available on the disk, some are printed.
Some programs, which were not written here but came from DEC, are
documented in DEC manuals. Other programs, documented on the disk,
are not included here; only the major processors are listed. The
files AIMS[BIB,DOC], AIMS.OLD[BIB,DOC], SAILON[BIB,DOC], and
PRUNE.DAT[UP,DOC] list other program documentation which may be of
interest. A convention used in naming [S,DOC] and [UP,DOC] files is
that the filename is the name of the program being documented, and
the extension is the programmer name of the author.
SAILONs (Stanford Artificial Intelligence Laboratory Operating Notes)
and AIMs (Artificial Intelligence Memos) are generally available in
printed form from the project secretaries. Try this before making
your own listing.
EDITORS:
TV: TVED.DCS[UP,DOC] is the reference manual for the TV editor.
E: TV2E.FW[UP,DOC] describes the differences between E and TV.
Read TVED.DCS also.
SOS: SOS.LES[S,DOC], SAILON 50.3, is the reference manual for SOS.
TECO: This is a DEC program. See the DECsystem 10 Users Handbook.
LANGUAGE PROCESSORS:
FAIL: FAIL.REG[AIM,DOC], AIM 226, is the reference manual.
SAIL: SAIL.KVL[AIM,DOC], AIM 204. This is a long manual; try to get
the printed version instead of spooling a copy.
MACRO: This is a DEC program. See the DECsystem 10
Assembly Language Handbook.
F4: This is the DEC FORTRAN. See the DECsystem 10
Mathematical Languages Handbook.
LISP: Our version of LISP, LISP 1.6, is described in
LISP.WD[S,DOC], SAILON 28.7.
PUB: PUBNET.TES[S,DOC], SAILON 70, describes the
PUB Document Compiler.
DEBUGGERS:
RAID: The display terminal debugger is described in
RAID.PMP[S,DOC], SAILON 58.1.
Appendix 12 Bibliography 168
DDT: The Teletype debugger is a DEC program; see the DECsystem 10
Assembly Language Handbook.
Appendix 13 Stanford Character Set 169
APPENDIX 13
STANFORD CHARACTER SET
The Stanford ASCII character set is displayed in the following table.
The three digit octal code for a character is composed of the number
at the left of its row plus the digit at the top of its column. For
example, the code for "A" is 100+1 or 101.
0 1 2 3 4 5 6 7
000 NUL ↓ α β ∧ ¬ ε π
010 λ TAB LF VT FF CR ∞ ∂
020 ⊂ ⊃ ∩ ∪ ∀ ∃ ⊗ ↔
030 _ → ~ ≠ ≤ ≥ ≡ ∨
040 SP ! " # $ % & '
050 ( ) * + , - . /
060 0 1 2 3 4 5 6 7
070 8 9 : ; < = > ?
100 @ A B C D E F G
110 H I J K L M N O
120 P Q R S T U V W
130 X Y Z [ \ ] ↑ ←
140 ` a b c d e f g
150 h i j k l m n o
160 p q r s t u v w
170 x y z { | ALT } BS
The tables below display the standard ASCII codes, and the SOS
representation used at Stanford for entering the full Stanford ASCII
character set from Teletypes or similar terminals with restricted
character sets. The obscure names for the ASCII codes below 40 are
listed just for confusion. Notes: "DEL" (177) is the ASCII delete.
"ESC" (33) is their alt mode. Codes 136 and 137 have two different
interpretations, as shown below. The SOS representation is so called
because it is provided by SOS, the Teletype editor. Certain other
programs also know about this representation, but it is not built
into the monitor in any way.
Appendix 13 Stanford Character Set 170
Standard ASCII
0 1 2 3 4 5 6 7
000 NUL SOH STX ETX EOT ENQ ACK BEL
010 BS TAB LF VT FF CR SO SI
020 DLE DC1 DC2 DC3 DC4 NAK SYN ETB
030 CAN EM SUB ESC FS GS RS US
040 SP ! " # $ % & '
050 ( ) * + , - . /
060 0 1 2 3 4 5 6 7
070 8 9 : ; < = > ?
100 @ A B C D E F G
110 H I J K L M N O
120 P Q R S T U V W
130 X Y Z [ \ ] ∧↑ _←
140 ` a b c d e f g
150 h i j k l m n o
160 p q r s t u v w
170 x y z { | } ~ DEL
SOS Representation
0 1 2 3 4 5 6 7
000 --- ?! ?" ?# ?$ ?% ?& ?'
010 ?( TAB LF VT FF CR ?) ?*
020 ?+ ?, ?- ?. ?/ ?0 ?1 ?2
030 ?9 ?6 ?3 ?= ?< ?> ?7 ?8
040 SP ! " # $ % & '
050 ( ) * + , - . /
060 0 1 2 3 4 5 6 7
070 8 9 : ; < = > ??
100 @ A B C D E F G
110 H I J K L M N O
120 P Q R S T U V W
130 X Y Z [ \ ] ↑ ←
140 ?@ ?A ?B ?C ?D ?E ?F ?G
150 ?H ?I ?J ?K ?L ?M ?N ?O
160 ?P ?Q ?R ?S ?T ?U ?V ?W
170 ?X ?Y ?Z ?[ ?: ALT ?] BS
INDEX 171
abbreviations for monitor BREAK 1 X 25, 42
commands 7 BREAK A 27
activation 19 BREAK B 28
activation character 17, 22 BREAK C 26
AD device 10 BREAK D 27
ADC device 10 BREAK F 21, 42
add channel 27 BREAK H 27
add piece of glass 27 BREAK key 17
addresses, core 3, 13 BREAK N 26, 27
ADVANCE command 119, 120 BREAK O 21
ALGOL 3 BREAK P 26
alias 23, 24, 36, 39, 42, 47, BREAK Q 22
55, 57 BREAK S 27
ALIAS (in WHO line) 23 BREAK T 27
ALIAS command 42 BREAK U 28
ALT 20, 31 BREAK W 22
ALT key 16 BREAK X 24, 25, 42
alt mode 16, 169 BS 18
ALT MODE, Teletype 31 BS key 16
analog-to-digital 10 CALCOMP 10
arguments 7 CALL 21, 24, 30, 35, 42
ARPA network 10, 31, 58, 104, CALL key 17
109, 129 call, deferred 21
ASCII 16, 131, 169 cameras, TV 26
ASCII switch in COPY 85 CANCEL command 109
ASK switch in COPY 85 carriage return 16, 20, 31, 42,
ASK switch in SPOOL 95 46
assembly language 3 CCONTINUE command 35
ASSIGN command 8, 36 CDETACH command 36
assistance 42 CETV command 12, 63
Associated Press 46, 59 CFORK command 36
ATTACH command 36, 48, 60 channel number 27
AUDIO (LOGIN option) 46 channels, Data Disc 5, 23, 26,
audio switch 28, 46 27, 39, 60
authorized users 11 channels, private 27
backspace 16 channels, public 27, 46
BACKSPACE command 119, 120 character set 5, 16, 169
backspace, deleting 18, 19 character set, full 21
backspace, non-deleting 18 CLEAR 19
bams 122 CLEAR key 17
BEEP 28 clear line editor 19
bibliography 167 CLRUWP command 34
BINARY switch in COPY 85 CMD files 63
binary, relocatable see CMQ (job queue) 24
relocatable binary code, character 16, 169
BLOCKED switch in COPY 85 command decoder 7, 17
blocks 14, 23, 32, 33, 54 command files 52
BMAR switch in XSPOOL 98 commands, monitor 7
book mode 64 COMPILE command 13, 64, 65
BREAK 21 COMPILE switch in RPG 67
INDEX 172
compiling programs 13 DAY.TXT (COPY filehack) 81
continuable 35 DAYTIME command 7, 40
CONTINUE command 24, 35 DCQ (job queue) 24
CONTROL 20, 52 DD (in WHO line) 23
CONTROL key 16, 132 DDT 33, 34, 62, 66, 72, 168
CONTROL key, Teletype 30 DDT command 34
CONTROL-B, Teletype 30 DDT, Executive 61
CONTROL-BREAK 22, 26 DE (deposit) command 34
CONTROL-BS 18 DEASSIGN command 38
CONTROL-C, Teletype 30 DEBUG command 66
CONTROL-CALL 21 debugging program see DDT or
CONTROL-CLEAR 22, 26 RAID
CONTROL-D 18 DECtape 8, 10, 24, 53, 143
CONTROL-FORM 18 Defense, Department of 129
CONTROL-I 19 deferred call 21
CONTROL-I, Teletype 31 delete 16, 169
CONTROL-K 18 delete channel 27
CONTROL-K, Teletype 31 DELETE command 50, 91
CONTROL-L, Teletype 31 delete piece of glass 27
CONTROL-META-LINE 21 DELETE switch in SPOOL 95
CONTROL-number 19 delete to left 18
CONTROL-O, Teletype 30 delete to right 18
CONTROL-R 18 DENSITY switch in COPY 85
CONTROL-RETURN 19, 20 deposit in core see DE
CONTROL-S 18 DET (in WHO display) 54
CONTROL-SPACE 18 DET (in WHO line) 23
CONTROL-TAB 18 DETACH command 35, 60
CONTROL-U, Teletype 30 detached jobs 23, 35, 52, 54
CONTROL-Z, Teletype 31 DEV privilege 60
CONVERT switch in COPY 85 device 36, 39, 142
COPY 49, 79 device name 8, 60
COPY command 49 device name, logical 8, 36
core see storage, core device name, physical 8, 10,
CORE command 33 36, 37
core image 3, 7, 13, 14, 23, device names, list of 10
24, 32, 33, 43, 54 DIAL command 59, 131
CREATE command 62 DIGEST (LOGIN option) 46, 47
CREF command 76 digital-to-analog 10
CREF switch in RPG 67, 70 DIOW (job queue) 24
CSTART command 35 directories 9
CTRL key, Teletype 30 DIRECTORY command 50, 91
CTV command 12, 62 directory device 8, 39
CTY device 10, 42 directory, telephone 56
cursors 5, 17 DIRED program 59
DAC device 10 DISABLE command 60
DART 51, 89, 119 disk 8, 9, 23, 33, 38, 40, 42,
data 8 50, 51, 53
Data Discs 5, 17, 22, 25, 26 disk PPN see alias
DATE (in WHO line) 23 display see terminals, display
DAY (in WHO line) 23 DMP 32
INDEX 173
DMP files 9, 13, 67 ESC T 27
DO 74 ESC U 28
DO command 52 ESC W 22, 36
DOC files 65 ESC X 25, 42
documentation, program 4, 167 ESC Y 25
DRD command 59 ESCAPE, Teletype 31
DSK (in WHO line) 23 ETV command 12, 63
DSK device see disk EVEN switch in COPY 86
DSKQ (in WHO line) 23 examine core see E
DSPOOL switch in COPY 85 EXECUTE command 13, 66
DTA device see DECtape extension 9, 32
DTQ (job queue) 24 extensions, standard 9
DUMP command 119, 121 EXTRA switch in COPY 86
dump file see DMP files EXTRA switch in SPOOL 95
DUMP switch in COPY 86 F4 62, 167
DUMP switch in RPG 67, 72 F4 files 63, 65
DUMP switch in SPOOL 95 FACT.TXT file 93
DWQ (job queue) 24 FAI files 63, 65
E 11, 17, 21, 62, 167 FAIL 3, 62, 65, 167
E (examine) command 34 FAIL switch in RPG 67
ECHO (in TTY command) 42 FAST (LOGOUT option) 48
EDDT command 60 FAST switch in COPY 86
EDIT command 63 FF switch in SPOOL 95
editing 11 file directory see directory
editor, display 11, 63 file protection 43
editor, line see line editor file storage 8
ENABLE command 60 File Transfer Protocol 58, 129,
end of file 21, 31 135
EOT command 119, 120 filenames 8
error messages 150 FILES command 40
ESC 21 files, disk 9, 24
ESC 1 X 25, 42 FILL (in TTY command) 42
ESC A 27 FILL (LOGIN option) 46
ESC B 28 FIND command 55
ESC C 26 FINGER command 14, 48, 57
ESC D 27 FINISH command 39
ESC E 26 FIXIMLAC command 58, 128
ESC F 21, 42 FLUSH command 39
ESC G 25 FONT switch in COPY 86
ESC H 27 FONT switch in XSPOOL 98
ESC I 22 FOONLY switch in COPY 86
ESC J 26 FORK command 36
ESC key 17 form feed 16, 31, 81
ESC L 25 FORM key 16
ESC N 26, 27 FORTRAN 62, 65, 167
ESC O 21 FORTRAN switch in RPG 67
ESC P 26 FORTRAN switch in SPOOL 95
ESC Q 22 fortune cookie 46
ESC R 26 FORWARD switch in RPG 67
ESC S 27 FTP command 58, 129, 135
INDEX 174
FUDGE2 73 job number 3, 8, 11, 36, 38,
FULL (in TTY command) 42 39, 42, 54, 57
FULL (LOGIN option) 46 JOBDDT 33, 34
full character set mode 21, 46 JOBFF 33
FULL switch in COPY 86 JOBNAM (in WHO display) 54
GET command 33 JOBNAM (in WHO line) 23
glass, pieces of 25, 27 JOBPC 35
glitch 25 JOBRD 24
graphics 5, 25 JOBREN 34
GRIPE command 101 jobs 23
GTOTAL switch in COPY 87 JOBSA 15, 34, 35
guest account 37, 44 KATTACH command 48
HALT command 35 KCS (in TIME command) 40
HEADER switch in COPY 87 keyboard scanner 17, 21
HEADING switch in SPOOL 95 keyboards 16
HELLO command 41 KIL privilege 60
HELP command 14, 57 KILL command 42, 60
HOLD switch in SPOOL 95 KILL switch in COPY 87
holding, automatic 22, 26 kill to character 18
HOT command 59 kilo-core-seconds 40
I/O see device KJOB command 11, 47
IGNI switch in COPY 87 KLOG command 48
IGNO switch in COPY 87 languages, programming 3, 167
III (in WHO line) 23 LATER command 108
IIIs 5, 17, 25, 27 left cursor 17
IMLAC 58 letters, lower case 7, 9, 21,
IMP device 10, 129 30, 42
INCREMENT (in TIME command) 40 LIBRARY switch in RPG 67, 73
information, system 4, 14, 39, LINE see line feed
53 LINE (in WHO display) 54
INIT (LOGIN option) 46 line editor 5, 16, 17, 19, 22,
input buffer 7, 19, 20, 21, 42, 26
52 line feed 16, 20, 31
insert characters 19 LINE key 16
insert mode 19 line number, terminal 27, 39,
Interface Message Processor see 54
IMP line numbers, SOS 11, 85, 88,
interrupt 17 95
Introduction for New Users 1 line printer see printer, line
Introduction to Terminals 5 LINK 130
INTW (job queue) 24 LISP 3, 53, 167
IOWQ 24, 35 LISP command 58
IOWQ (job queue) 24 LIST command 50, 91
JBS (in WHO line) 23 LIST switch in COPY 87
JLOG 54 LIST switch in RPG 67, 70
JOB (in WHO display) 54 LMAR switch in XSPOOL 98
JOB (in WHO line) 23 LOAD command 13, 66
Job Data Area 15, 33, 34 LOADER 33, 34, 62, 67
job name 32, 54, 57 LOADER switches 76
loading programs 13
INDEX 175
local user 44, 59 MSG files 104
LOCATE command 119, 120 MTA device see magnetic tape
LOCK 24 MTQ (job queue) 24
LOGGER 130 NAP (COPY filehack) 81
logical device name see device NARROW switch in SPOOL 95
name, logical NCP 129
LOGIN command 3, 7, 10, 43 New York Times 59
login, automatic 7 news service see NS
LOGOUT 11, 12, 47, 63 NL (in WHO line) 23
LOGOUT command 48 NOCOPY switch in SPOOL 95
LOGOUT.MSG file 48 NODELETE switch in SPOOL 95
LOGRUN 47 NODUMP switch in RPG 67, 72
LOGRUN (LOGIN option) 46 NODUMP switch in SPOOL 95
lower segment 14 NOFF switch in SPOOL 95
LPT device see printer, line NOFORTRAN switch in SPOOL 95
LPT0 switch in SPOOL 95 NOHEADING switch in SPOOL 95
LPT100 switch in SPOOL 95 NOLOAD switch in RPG 67
LST files 63 NOMAIL (LOGIN option) 46, 47
MAC files 63, 65 NONARROW switch in SPOOL 95
MACRO 62, 65, 167 NONSTANDARD switch in RPG 67
MACRO switch in RPG 67 NONUMBER switch in SPOOL 95
magnetic tape 8, 9, 10, 24, 32, NONUMBERS switch in COPY 87
36, 51, 143 normal activation mode 20
MAIL 46, 51, 101 NOSAISEG switch in RPG 67
MAIL (COPY filehack) 81 NOSEARCH switch in RPG 73
MAIL command 43, 101 NOSPACES switch in COPY 88
MAINT.TXT (COPY filehack) 81 NOTICE.TXT (COPY filehack) 81
maintenance forecast 81 NOTICE.TXT file 43, 102, 113
maintenance mode 45 NOTITLE switch in SPOOL 95
MAKE command 62 NOWARN switch in SPOOL 95
MAP switch in RPG 67, 72 NOXGP switch in XSPOOL 98
ME (LOGIN option) 46 NS 47, 113
ME (LOGOUT option) 48 NS command 59
memory stops 148 NSA files 63, 65
MESSAG (LOGIN option) 46 NSAIL 62, 65
messages, system 11, 43 NSAIL switch in RPG 67
META 18, 19, 20, 52 NTNODE switch in XSPOOL 98
META key 16 null job 40, 54
META-BS 18 null-time 23
META-CALL 21 NULQ (job queue) 24
MICRO-PLANNER 3 NUMBER switch in SPOOL 95
MLENGTH switch in COPY 87 number, line see line number
MODE switch in SPOOL 95 NVNODE switch in XSPOOL 98
monitor mode 7, 11, 17, 21, 33, OCTAL switch in SPOOL 95
35, 42 ODD switch in COPY 88
move left 18 old mode (UDP) 37
move right 18 operator 42
move to beginning 18 OPTIMIZE switch in COPY 88
move to end 18 OPTION.TXT (COPY filehack) 81
MSG (COPY filehack) 81
INDEX 176
OPTION.TXT file 43, 45, 47, project name 4
105, 117 project-programmer name see PPN
OSA files 63, 65 protection see file protection
OSAIL 62, 65 PROTECTION switch in COPY 88
OSAIL switch in RPG 68 pseudo-teletype see PTY
OUTGO.MSG file 103 PTP device 10
output buffer 21, 22 PTR device 10
page printer 25, 26, 27, 55 PTTY command 39
paging, telephone 28 PTY 10, 48, 54
paper tape 10 PTYJOB 131
paper, pieces of 25 PUB 58, 62, 167
PARRY command 59 PUB command 65
password 43, 53 PUB files 63
PDP-10 1, 3, 16, 24, 54 public device 37
PDP-10 console 10, 42, 60 QQSVCM.RPG file 65
PDP-6 24, 54 QQSVED.RPG file 65
PGX pseudo-device (COPY) 84 QSPOOL 100
phantom 54 QSPOOL command 50
physical device name see device queue 57
name, physical QUEUE (in WHO display) 54
pieces of glass 25 QUEUE (in WHO line) 23
pieces of paper 25 queue names 24
PJOB command 39 QUIET switch in COPY 88
PL (in WHO display) 54 R (in WHO line) 23
PLAN (COPY filehack) 81 R command 32, 43
PLAN command 101 RAID 33, 34, 62, 66, 72, 167
plan file 57, 81, 101, 113 Rapid Program Generator see RPG
plotter 10 RCOR (in WHO line) 23
PMAR switch in XSPOOL 98 RCV 113
PORNO (LOGIN option) 46 RCV command 46
PPN 4, 9, 10, 24, 36, 39, 42, READ command 64
43, 46, 47, 57, 60 REASSIGN command 38
PPN (in WHO display) 54 RECOPY switch in SPOOL 95
PPN (in WHO line) 23 records 9
PPN, disk see alias REENTER command 34
PPPN command 39 REFERENCE switch in COPY 88
PREFIX, Teletype 31 refresh 26
PREPARE command 66 REL files 9, 65
PRI privilege 60 REL switch in RPG 68
PRINT command 50, 91 reloading 149
printer, line 8, 10, 36, 50, relocatable binary 9, 13
91, 93, 142 REMIND command 106
private device 37 remote terminal 31
privileged commands 60 RENAME command 49, 91
programmer name 3, 22, 42, 46, RENAME switch in COPY 88
51, 55, 57 repeat skip command 18
programs, display 25, 27 REPEAT switch in SPOOL 95
programs, system 4, 32, 43 request for connection 130
programs, system information 7, request for new message 130
14 RESET 26, 27, 33
INDEX 177
RESOURCES command 40 shuffling 40
RESTORE command 119, 121 SIZE (in WHO display) 54
retrieve last line 19 SIZE (in WHO line) 23
RETURN see carriage return, 20 skip to character 18
RETURN key 16, 17 SL (in WHO display) 54
REWIND command 119 SLEEP 24
RFC 130 SLEVEL command 41
RFNM 130 SOCKET 130
right cursor 17 SOS 11, 62, 63, 167
RMAR switch in XSPOOL 98 SOS representation 30
RP (in WHO line) 23 Spacewar 4
RPG 12, 47, 48, 53, 62 spacewar module 24, 54
RPG (COPY filehack) 81 special activation mode 20
RPGSAV (LOGOUT option) 48 speech synthesizer 10
RSL command 58, 122 SPOOL command 50, 93
RTIME 25 SPOOL switch in COPY 89
RUBOUT, Teletype 30 spoolers 50, 84
RUN command 32 SSAVE command 34
run time 40, 54, 57 Stanford ASCII 16
running programs 13, 32 START command 34
RUNQ (job queue) 24 starting programs 34
RUNTIME (in WHO line) 23 status, system 22
runtime, incremental 23 STOP (job queue) 24
SAI files 9, 63, 65 stop typeout 21, 30
SAIL 3, 62, 65, 167 storage, core 3, 14, 23, 148
SAIL switch in RPG 68 suspend typeout 22, 30
SAVE command 33 SW10 (in WHO display) 54
SAVE switch in COPY 88 SW6 (in WHO display) 54
SAVED.MSG file 116 switch, audio see audio switch
scanner, keyboard see keyboard switch, video see video switch
scanner SYS device 10, 33, 38
scrolling 25 SYSTAT command 58
SEARCH switch in COPY 89 system WHO line see WHO line
SEG (in WHO display) 54 T 58, 129, 131
SEG (in WHO line) 23 TAB 19, 31
segment, lower see lower TAB key 16
segment TABS (in TTY command) 42
segment, upper see upper TABS (LOGIN option) 46
segment tabs, hardware 42
segments 14 TALK command 42, 60
select audio channel 28 talk ring 42
select channel 27 tape, magnetic see magnetic
select piece of glass 27 tape
SEND command 101 tape, paper 8
service level 41, 54, 55, 58 TCOR (in WHO line) 23
SETPR2 153 TECO 12, 62, 63, 167
SETUWP command 34 TECO command 63
SHIFT key, Teletype 30 Teletypes 5, 11, 30, 46, 53,
SHIFT keys 5, 16 58, 84
SHIFT LOCK key 5, 16, 21 TELNET 129, 131
INDEX 178
TELNET command 58, 129, 131 UUOs 2, 4, 20
terminal 7, 10, 41 vector 5
terminals, display 5, 16, 25, vector nodes 98
42, 53 vertical position 25
text nodes 98 vertical tab 16
tick 24, 54 video switch 26
TIME (in TTY command) 42 VOD device 10
TIME (in WHO display) 54 voder 10
TIME (in WHO line) 23 VT 31
TIME command 39 VT key 16
timesharing 1 WAIT (in TIME command) 40
TITLE switch in COPY 90 wait time 23
TITLE switch in SPOOL 95 WARN switch in SPOOL 95
TLIST command 119, 120 whams 122
TLK privilege 60 WHERE command 14, 57
TMAR switch in XSPOOL 98 WHO (in TTY command) 42
TMPCOR 47, 63 WHO (LOGIN option) 46
TN command 58, 129, 131 WHO command 7, 14, 53
TOP key 5, 16 WHO line 5, 22, 36, 39, 42, 46,
TPL pseudo-device (COPY) 84 54
TQ (job queue) 24 wizards 40, 58
TRANSFER command 49, 91 WRU files 63
TRY command 66 XEROX command 58
TTY (in WHO line) 23 Xerox Graphics Printer see XGP
TTY command 41 XFACT.TXT file 93
TTY device see terminal; XGP 10, 50, 93, 98, 144
Teletypes XGP switch in XSPOOL 98
TTYUUO 31 XGPLIST command 50, 91
TV 11, 62, 167 XLINE switch in XSPOOL 98
TV command 12, 63 XP (in WHO line) 23
TV device 10 XSPOOL command 50, 93, 98
TV, lounge 27, 28 XTIME 24, 25, 42
TYPE command 50, 91 XTIME (in TIME command) 40
typeahead 7 XTIME (in WHO line) 23
UCOR (in WHO line) 23 ZERO command 53
UDP 10, 37, 39, 40, 41, 53, 59,
83, 147
UDPUFD command 59
UFD 9
UNHIDE (LOGIN option) 46
UNSPOOL 100
UNSPOOL command 50
UPDATE (in TTY command) 42
upper segment 14, 23, 24, 33,
54
user disk pack see UDP
User File Directory 9
user mode 7, 35, 60
user, authorized 11
UTPCLR 53